:root{--ink:#1f1d1a;--paper:#f6f4ef;--line:#e3dfd6;--muted:#6b665e;--secondary:#4a463f;--header-muted:#b9b3a8;--font-serif:"Newsreader", Georgia, serif;--font-sans:"Geist", system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);flex-direction:column;font-size:15px;line-height:1.65;display:flex}.site-header{background:var(--ink);color:var(--paper);align-items:baseline;gap:16px;padding:16px 24px;display:flex}.app-name{font-family:var(--font-serif);font-size:26px}.tagline{color:var(--header-muted)}.edition-badge{color:var(--header-muted);font-family:var(--font-mono);margin-left:auto;font-size:12px}.stage{flex-direction:column;flex:1 0 auto;display:flex}.page-heading{padding:16px 24px 0}.page-title{font-family:var(--font-serif);margin:0;font-size:26px;font-weight:400;line-height:1.3}.page-ref{color:var(--muted);font-family:var(--font-mono);margin:0;font-size:12px}.viewport{flex:1;min-height:240px;position:relative;overflow:hidden}.viewport canvas{display:block;position:absolute;inset:0}.viewport canvas:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.stage-message{z-index:1;text-align:center;pointer-events:none;margin:0;padding:24px;position:absolute;inset:0 0 auto}.stage-message a{color:inherit;pointer-events:auto}.hint{color:var(--muted);text-align:center;margin:0;padding:8px 24px}.site-footer{border-top:1px solid var(--line);color:var(--secondary);padding:12px 24px}
