/* Jugami Statistics: "Nightingale's ledger" theme. Midnight ink, rose, Crimean blue, ledger cream. */
:root{
  --ink:#23263f; --ink2:#363a5c; --text:#2c2e3a; --muted:#5d6070;
  --paper:#fcf8f1; --paper2:#f3ecdf; --line:#d9cfbd; --rule:rgba(35,38,63,.07);
  --rose:#b03a5b; --rose-ink:#8c2443; --blue:#3a78ad; --blue-soft:#4f8fc0; --gold:#e0a93b; --gold-ink:#8a5a00;
  --good:#2e7d4f; --bad:#b23a2e;
  --radius:10px;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;color:var(--text);font-family:var(--sans);font-size:18px;line-height:1.65;background:var(--paper);
  background-image:repeating-linear-gradient(transparent 0 31px,var(--rule) 31px 32px)}
a{color:var(--rose-ink);text-underline-offset:2px}
a:hover{color:var(--ink)}
img,svg{max-width:100%;height:auto}
h1,h2,h3{font-family:var(--serif);color:var(--ink);line-height:1.2}
h2{font-size:1.75rem;margin:2.4em 0 .4em;scroll-margin-top:12px}
h2::after{content:"";display:block;width:70px;height:4px;margin-top:.35em;background:linear-gradient(90deg,var(--blue) 0 33%,var(--rose) 33% 66%,var(--gold) 66%)}
h3{font-size:1.22rem;margin:1.4em 0 .3em;scroll-margin-top:12px}
.skip{position:absolute;left:-999px;top:8px}
.skip:focus{left:8px;background:var(--ink);color:#fff;padding:8px 12px;z-index:10}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1060px;margin:0 auto;padding:0 18px}
.prose{max-width:41rem}
/* header */
.site-head{background:var(--ink);color:#fff;border-bottom:4px solid var(--rose)}
.site-head .bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 18px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-family:var(--serif);font-size:1.3rem;letter-spacing:.02em}
.brand img{width:36px;height:36px}
.brand:hover{color:#f6d38f}
.head-nav{margin-left:auto;display:flex;flex-wrap:wrap;gap:6px}
.head-nav a{color:#fff;text-decoration:none;font-size:.9rem;padding:5px 11px;border:1px solid rgba(255,255,255,.35);border-radius:999px}
.head-nav a:hover,.head-nav a:focus-visible{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.crumbs{font-size:.9rem;color:var(--muted);margin:14px 0 0}
.crumbs a{color:var(--muted)}
/* hero */
.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:28px;align-items:center;padding:22px 0 8px}
.hero h1{font-size:clamp(2.1rem,5.5vw,3.3rem);margin:.1em 0 .2em}
.tagline{font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--rose-ink);margin:0 0 .6em}
.hero figure{margin:0}
.hero figure svg{display:block;border-radius:var(--radius);box-shadow:0 8px 26px rgba(35,38,63,.16)}
.btns{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}
.btn,button{font:inherit;font-size:1rem;cursor:pointer;border-radius:999px;padding:8px 16px;border:2px solid var(--ink);background:var(--ink);color:#fff;text-decoration:none;display:inline-block;line-height:1.3}
.btn.ghost,button.ghost{background:#fff;color:var(--ink)}
.btn:hover,button:hover{background:var(--ink2);color:#fff}
button.ghost:hover,.btn.ghost:hover{background:var(--paper2);color:var(--ink)}
button[aria-pressed="true"]{background:var(--rose);border-color:var(--rose);color:#fff}
button:disabled{opacity:.5;cursor:not-allowed}
select,input[type=number],input[type=text]{font:inherit;font-size:1rem;padding:5px 8px;border:2px solid var(--muted);border-radius:6px;background:#fff;color:var(--text)}
/* toc + cards */
.toc{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:14px 0}
.toc a{display:block;padding:4px 12px;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--ink);background:#fff;font-size:.95rem}
.toc a:hover{border-color:var(--rose);color:var(--rose-ink)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;list-style:none;padding:0;margin:16px 0}
.card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}
.card h3{margin:.35em 0 .25em}
.card p{margin:.2em 0;font-size:.98rem}
.card svg{display:block;width:76px;height:76px}
.card.live{border:2px solid var(--ink);box-shadow:5px 5px 0 var(--gold)}
.card.live h3 a::after{content:"";position:absolute;inset:0}
.card .num{font-family:var(--serif);color:var(--rose-ink);font-size:.9rem;letter-spacing:.08em;text-transform:uppercase}
.card.soon{background:var(--paper2);border-style:dashed;color:var(--muted)}
.card.soon h3{color:var(--muted)}
.card.soon .num{color:var(--muted)}
.tag{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:4px;background:var(--gold);color:var(--ink)}
/* math + callouts */
.formula{font-family:var(--serif);font-size:clamp(1.35rem,4vw,1.9rem);text-align:center;color:var(--ink);margin:.5em 0;letter-spacing:.02em;overflow-x:auto}
.m{font-family:var(--serif);font-style:italic;white-space:nowrap}
.callout{border-left:5px solid var(--rose);background:#fff;padding:12px 16px;border-radius:0 var(--radius) var(--radius) 0;margin:16px 0}
.callout.blue{border-left-color:var(--blue)}
.callout.gold{border-left-color:var(--gold)}
.callout h3{margin-top:.1em}
.callout p:last-child{margin-bottom:0}
.two{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.example{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px;margin:14px 0}
.example h3{margin-top:.2em}
.steps{counter-reset:s;list-style:none;padding:0}
.steps li{counter-increment:s;position:relative;padding-left:2.2em;margin:.35em 0}
.steps li::before{content:counter(s);position:absolute;left:0;top:.15em;width:1.6em;height:1.6em;border-radius:50%;background:var(--ink);color:#fff;font-size:.85rem;display:grid;place-items:center}
details{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 14px;margin:10px 0}
summary{cursor:pointer;font-weight:600;color:var(--ink)}
.table-wrap{overflow-x:auto;max-width:100%}
table.data{border-collapse:collapse;background:#fff;margin:10px 0;font-size:.95rem}
table.data th,table.data td{border:1px solid var(--line);padding:5px 10px;text-align:center}
table.data th{background:var(--paper2);color:var(--ink)}
table.data caption{text-align:left;font-weight:600;color:var(--ink);padding:4px 0}
.mistake{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin:10px 0}
.mistake .x{color:var(--bad);font-weight:700}.mistake .ok{color:var(--good);font-weight:700}
.figure{margin:16px 0}
.figure figcaption{font-size:.92rem;color:var(--muted);margin-top:6px}
.history{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;list-style:none;padding:0}
.history li{background:#fff;border:1px solid var(--line);border-top:4px solid var(--blue);border-radius:8px;padding:12px 14px;font-size:.98rem}
.history b.yr{display:block;font-family:var(--serif);font-size:1.3rem;color:var(--rose-ink)}
/* widgets */
.widget{background:#fff;border:2px solid var(--ink);border-radius:var(--radius);padding:16px 18px;margin:16px 0;box-shadow:6px 6px 0 rgba(35,38,63,.12)}
.widget .help{color:var(--muted);font-size:.95rem;margin-top:0}
.widget h3{margin-top:.2em}
.widget svg.plot{display:block;width:100%;background:var(--paper);border:1px solid var(--line);border-radius:8px;touch-action:manipulation}
.wgrid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px;align-items:start}
.ctrl{margin:10px 0}
.ctrl label{display:flex;justify-content:space-between;gap:8px;font-weight:600;color:var(--ink)}
.ctrl input[type=range]{width:100%;accent-color:var(--rose)}
.ctrl output{font-family:var(--mono);color:var(--rose-ink)}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.readout{font-family:var(--mono);font-size:.98rem;background:var(--paper);border:1px dashed var(--muted);border-radius:6px;padding:10px 12px;line-height:1.8}
.readout b{color:var(--ink)}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.92rem;margin:8px 0;padding:0;list-style:none}
.legend span.sw{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:-2px;margin-right:5px}
.practice .q{font-family:var(--serif);font-size:1.18rem;color:var(--ink);min-height:2.4em}
.practice form{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.practice input[type=text]{width:9em;font-size:1.1rem}
.feedback{min-height:1.6em;font-weight:600;margin:.5em 0}
.feedback.good{color:var(--good)}.feedback.bad{color:var(--bad)}
.hint{color:var(--muted);font-style:italic;min-height:1.2em}
.stats{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.95rem;color:var(--muted);border-top:1px dashed var(--line);padding-top:8px;margin-top:10px}
.stats b{color:var(--ink);font-size:1.05rem}
noscript p,.noscript{display:block;background:var(--paper2);border:1px dashed var(--muted);padding:10px 14px;border-radius:6px}
/* quiz */
.quiz fieldset{border:1px solid var(--line);border-radius:8px;background:#fff;margin:12px 0;padding:10px 16px}
.quiz legend{font-weight:600;color:var(--ink);padding:0 6px;font-family:var(--serif);font-size:1.08rem}
.quiz label{display:block;padding:4px 0;cursor:pointer}
.quiz .qfb{margin:.2em 0 0;font-size:.95rem;min-height:0}
.quiz .qfb.good{color:var(--good)}.quiz .qfb.bad{color:var(--bad)}
.talk li{margin:.5em 0}
/* pager + footer */
.pager{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:40px 0 10px;padding:14px 0;border-top:2px solid var(--ink)}
.pager a{text-decoration:none;font-weight:600;color:var(--ink)}
.pager a:hover{color:var(--rose-ink)}
.sources li{margin:.35em 0}
.site-foot{margin-top:40px;background:var(--ink);color:#e9e9f2;font-size:.95rem;padding:18px 0 22px}
.site-foot a{color:#f6d38f}
.jugami-more{margin-top:8px}
.jugami-more span{font-weight:700;margin-right:4px}
@media (max-width:780px){.hero,.two,.wgrid{grid-template-columns:1fr}body{font-size:17px}.head-nav{display:none}h2{font-size:1.5rem}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.m0{margin:0}
.sw-dis{background:#4f8fc0}.sw-wou{background:#c94f6d}.sw-oth{background:#3f4459}
.note{font-family:var(--serif);font-style:italic;color:var(--muted)}
/* tap targets: every link/control at least 44px tall (Mandy round 1) */
.skip,.brand,.head-nav a,.crumbs a,.jugami-more a,.toc a,.pager a,.btn{min-height:44px;display:inline-flex;align-items:center}
.skip{left:-9999px}
.skip:focus{left:8px}
.brand{display:flex}
.head-nav{align-items:center}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;column-gap:6px;margin-top:6px}
.toc a{padding:4px 14px}
.btn,button{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
select,input[type=number],input[type=text],input[type=range]{min-height:44px}
.quiz label{min-height:44px;display:flex;align-items:center;gap:10px;padding:2px 0}
.quiz label input{flex:none;width:20px;height:20px;margin:0}
.jugami-more{display:flex;flex-wrap:wrap;align-items:center;column-gap:18px;row-gap:2px}
.jugami-more span{margin-right:0}
a.go,.card h3 a,table.data td a{min-height:44px;display:inline-flex;align-items:center}
summary{min-height:44px;padding:7px 0;box-sizing:border-box}
