@font-face{font-family:'IBM Plex Serif';src:url(fonts/IBMPlexSerif-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Serif';src:url(fonts/IBMPlexSerif-Italic.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'IBM Plex Serif';src:url(fonts/IBMPlexSerif-SemiBold.woff2) format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Sans';src:url(fonts/IBMPlexSans-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Sans';src:url(fonts/IBMPlexSans-Medium.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url(fonts/IBMPlexMono-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}

:root{
  --paper:#f5f1e8; --paper-2:#fffaf0; --paper-3:#eee7da;
  --ink:#221a14; --ink-2:#3f342a; --ink-3:#6a5a48;
  --rule:#d8cdba; --accent:#3d4a57; --alarm:#6b1f2e;
  --serif:'IBM Plex Serif', 'Times New Roman', serif;
  --sans:'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif;
  --mono:'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
  --top:52px;
}
*{box-sizing:border-box}
html{scroll-padding-top:calc(var(--top) + 12px)}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.55 var(--serif)}
a{color:var(--accent)}
.top{position:sticky;top:0;z-index:5;height:var(--top);display:flex;align-items:center;gap:14px;
  padding:0 20px;background:var(--paper);border-bottom:1px solid var(--rule);font:14px/1.2 var(--sans)}
.top .home{color:var(--ink);text-decoration:none;font-weight:500;white-space:nowrap}
.top .spacer{flex:1}
.layers{display:flex}
.layers button,.top input,.top .btn{font:14px var(--sans);color:var(--ink);background:var(--paper-2);
  border:1px solid var(--rule);padding:5px 10px;height:30px}
.layers button+button{border-left:0}
.layers button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}
.top input[type=search]{width:220px}
.top input.jump{width:70px}
.top .btn{text-decoration:none;display:inline-flex;align-items:center}
/* reader */
.reader{display:grid;grid-template-columns:minmax(0,760px) minmax(320px,1fr);gap:32px;padding:0 20px;max-width:1500px;margin:0 auto}
.text{padding-bottom:50vh}
.scanpanel{position:sticky;top:calc(var(--top) + 12px);height:calc(100vh - var(--top) - 24px);margin:12px 0;
  display:flex;flex-direction:column}
.scanpanel .frame{flex:0 1 auto;min-height:0;display:flex;align-items:flex-start;justify-content:center}
.scanpanel img{max-width:100%;max-height:calc(100vh - var(--top) - 96px);object-fit:contain;background:#fff;
  box-shadow:0 1px 0 var(--rule),0 12px 28px rgba(40,30,20,.08)}
.scanpanel figcaption{font:13px/1.45 var(--sans);color:var(--ink-3);padding-top:8px}
.doc{border-top:1px solid var(--ink);margin-top:48px;padding-top:14px}
.doc h2{font:500 22px/1.3 var(--sans);margin:0 0 6px}
.doc .meta{font:14px/1.45 var(--sans);color:var(--ink-3);margin:0}
.doc details{font:14px/1.5 var(--sans);color:var(--ink-2);margin-top:6px}
.page{border-top:1px solid var(--rule);margin-top:28px;padding-top:12px;content-visibility:auto;contain-intrinsic-size:auto 700px}
.page h3{font:500 15px/1.4 var(--sans);margin:0 0 10px;color:var(--ink-2)}
.page h3 .no{font-family:var(--mono);font-weight:400;color:var(--ink-3);margin-right:8px}
.page.current h3{color:var(--accent)}
.page.blank{margin-top:14px}
.page.blank .reading{color:var(--ink-3);font-size:15px}
.lang{font:13px var(--sans);color:var(--ink-3);margin:0 0 4px}
.reading{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 14px}
.de .reading{font-size:16px}
.notes{font:14px/1.5 var(--sans);color:var(--ink-2);margin:6px 0 0}
.notes summary{cursor:pointer;color:var(--accent)}
.notes p{margin:6px 0}
.inline-scan{display:none}
body[data-layer=english] .de,body[data-layer=german] .en{display:none}
body[data-layer=both] .en{border-top:1px dashed var(--rule);padding-top:10px}
/* search results */
.results{position:fixed;top:var(--top);right:20px;width:min(560px,calc(100vw - 40px));max-height:65vh;overflow:auto;
  background:var(--paper-2);border:1px solid var(--rule);z-index:6;font:14px/1.45 var(--sans);display:none}
.results.open{display:block}
.results p{margin:0;padding:8px 12px;color:var(--ink-3)}
.results a{display:block;padding:8px 12px;border-top:1px solid var(--rule);color:var(--ink);text-decoration:none}
.results a:hover{background:var(--paper-3)}
.results b{font-weight:500;color:var(--accent)}
.results mark{background:#ffe066;color:inherit}
/* cover page */
.cover{max-width:760px;margin:0 auto;padding:40px 20px 80px}
.cover h1{font:500 34px/1.2 var(--sans);letter-spacing:-.01em;margin:0 0 10px}
.cover .sub{font-style:italic;color:var(--ink-3);margin:0 0 28px}
.cover h2{font:500 22px/1.3 var(--sans);margin:40px 0 10px}
.contents{width:100%;border-collapse:collapse;font:14px/1.45 var(--sans)}
.contents td{border-top:1px solid var(--rule);padding:8px 10px 8px 0;vertical-align:top}
.contents td.sc{font-family:var(--mono);white-space:nowrap;color:var(--ink-3)}
.contents td.dt{white-space:nowrap;color:var(--ink-3)}
.contents tr.gap td{color:var(--ink-3)}
.why{font-weight:400;color:var(--ink-3);margin-left:8px}
.inacc{font:13px/1.45 var(--sans);color:var(--ink-3);margin:-4px 0 10px}
.asidebar{font:14px/1.5 var(--sans);color:var(--ink-2);margin:16px 0 0;padding-bottom:14px;border-bottom:1px solid var(--rule)}
.asidebar button{font:14px var(--sans);color:var(--accent);background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}
body.hide-aside .page.aside{margin-top:10px;padding-top:8px}
body.hide-aside .page.aside h3{margin:0}
body.hide-aside .page.aside .de,body.hide-aside .page.aside .en,body.hide-aside .page.aside .notes,
body.hide-aside .page.aside .inline-scan,body.hide-aside .page.aside .inacc{display:none}
/* account */
.account{max-width:760px;margin:0 auto;padding:40px 20px 80px}
.account h1{font:500 34px/1.2 var(--sans);letter-spacing:-.01em;margin:0 0 10px}
.account .sub{font-style:italic;color:var(--ink-3);margin:0 0 24px}
.account h2{font:500 24px/1.3 var(--sans);margin:56px 0 4px;padding-top:14px;border-top:1px solid var(--ink)}
.account .secnote{font:14px/1.5 var(--sans);color:var(--ink-3);margin:0 0 8px}
.account nav ol{font:15px/1.6 var(--sans);padding-left:20px}
.filters{font:14px var(--sans);color:var(--ink-2);margin:18px 0 0}
.day{margin-top:34px}
.day > h3{font:500 18px/1.35 var(--sans);margin:0 0 2px;color:var(--ink)}
.day > h3 .dt{font-weight:400;color:var(--ink-3)}
.entry{margin-top:22px}
.day .entry{margin-top:14px}
.entry h3,.entry h4{font:500 17px/1.4 var(--sans);margin:0 0 4px}
.entry .meta{font:13px/1.5 var(--sans);color:var(--ink-3);margin:0 0 6px}
.entry p{margin:0 0 8px}
.entry .issue{font:13px/1.5 var(--sans);color:var(--ink-3)}
.presslabel{font:13px var(--sans);color:var(--ink-3);margin:16px 0 0}
blockquote.q{margin:8px 0 12px;padding-left:14px;border-left:2px solid var(--rule)}
blockquote.q p{margin:0}
blockquote.q .src{font:13px/1.5 var(--sans);color:var(--ink-3);margin-top:2px}
body.keyonly .entry:not(.key){display:none}
body.keyonly .day:not(:has(.entry.key)){display:none}
body.keyonly .presslabel{display:none}
.register td{border-top:1px solid var(--rule);padding:8px 10px 8px 0;vertical-align:top;font:14px/1.5 var(--sans)}
.register td:first-child{white-space:nowrap;color:var(--ink-2);width:30%}
@media (max-width:980px){
  .reader{display:block}
  .scanpanel{display:none}
  .inline-scan{display:block;margin:10px 0 0}
  .inline-scan img{width:100%;height:auto;background:#fff}
  .top{flex-wrap:wrap;height:auto;padding:8px 12px;gap:8px}
  .top .spacer{display:none}
  .top input[type=search]{width:100%;order:9}
  html{scroll-padding-top:120px}
}
@media (max-width:720px){
  .reader-page .top .home{display:none}
  .reader-page{scroll-padding-top:140px}
  .cover h1{font-size:28px}
  .contents td.dt{white-space:normal}
}

.page .lang{margin-top:4px}
.page:not([data-ready]){min-height:640px}
html,body{overflow-anchor:none}
.page{content-visibility:visible;contain-intrinsic-size:none}
.missing{font:15px/1.5 var(--sans);color:var(--ink-3);margin:0 0 12px}
.roster{font:14px/1.5 var(--sans);color:var(--ink-2);margin:6px 0 0}
.roster summary,.others summary{cursor:pointer;color:var(--accent)}
.roster table{border-collapse:collapse;width:100%;margin-top:6px}
.roster td,.roster th{border-top:1px solid var(--rule);padding:4px 8px 4px 0;text-align:left;vertical-align:top;font-weight:400}
.roster th{color:var(--ink-3)}
.roster td.id,.roster td.r{font-family:var(--mono);font-size:13px;color:var(--ink-3);white-space:nowrap}
.roster tr.x td{color:var(--alarm)}
.others{font:14px/1.5 var(--sans);color:var(--ink-2);margin:6px 0 0}
.others .reading{font:15px/1.5 var(--serif);color:var(--ink);margin-top:6px}
.src{font:13px/1.45 var(--sans);color:var(--ink-3);margin:0 0 6px}
.transport{border-top:1px solid var(--ink);margin-top:48px;padding-top:14px}
.transport h2{font:500 22px/1.3 var(--sans);margin:0 0 6px}
.transport .meta{font:14px/1.45 var(--sans);color:var(--ink-3);margin:0}
.cov{width:100%;border-collapse:collapse;font:14px/1.45 var(--sans)}
.cov td,.cov th{border-top:1px solid var(--rule);padding:8px 10px 8px 0;text-align:left;vertical-align:top;font-weight:400}
.cov th{color:var(--ink-3)}
.cov td.n{font-variant-numeric:tabular-nums;white-space:nowrap}
.reading .rt{border-collapse:collapse;font:15px/1.4 var(--serif);margin:0 0 10px;width:100%}
.reading .rt td{border-top:1px solid var(--rule);padding:2px 10px 2px 0;vertical-align:top}
.reading .rl{margin:0 0 10px;white-space:normal}
.reading{white-space:normal}
.gsearch{margin:24px 0 0}
.gsearch input{font:15px var(--sans);width:100%;padding:8px 10px;border:1px solid var(--rule);background:var(--paper-2)}
.ghits a{display:block;padding:8px 0;border-top:1px solid var(--rule);color:var(--ink);text-decoration:none;font:14px/1.45 var(--sans)}
.ghits b{font-weight:500;color:var(--accent)}
.ghits mark{background:#ffe066;color:inherit}
.ghits p{font:14px var(--sans);color:var(--ink-3)}
body[data-layer=german] .en{display:none}
body[data-layer=english] .de{display:none}
.invnav{font:14px var(--sans);color:var(--ink-3);white-space:nowrap}
.invnav a{padding:5px 6px;color:var(--accent);text-decoration:none}.invnav a.on{color:var(--ink);font-weight:500}
.invnav a.btn{border:0;background:none;height:auto}
.scanpanel img,.inline-scan img{box-shadow:none;border:1px solid var(--rule)}
