/* Keep the source book's typography and vertical reading layout. */
html.m-both .pair:has(>.en):has(>.ja)>.en:not(:empty),
html.m-both .pair:has(>.en):has(>.ja)>.ja:not(:empty){
  border-bottom:1px solid var(--rule);
  padding-bottom:calc(.65*var(--u));
}
.pair>.shared{margin:0;font-family:var(--en);font-size:1em;font-weight:500;line-height:1.62;color:var(--ink)}
.shared-row>.shared{display:block}
html.m-en .pair>.shared{font-size:1.04em}
.math-gloss{font-family:var(--jp);font-size:.82em;line-height:1.8;color:var(--sub);margin:.65em 0 0}
html.m-en .math-gloss,html.m-ja .math-gloss{display:none}
.vector{font-weight:700;font-style:italic}
.eq-number{font-family:var(--en);font-size:.8em;text-align:right;color:var(--sub);margin:0 0 var(--u)}
.footnote-ref{font-size:.72em;vertical-align:super;line-height:0;padding-left:2px}
.footnote-row{margin-top:var(--u);margin-bottom:.3em}
.footnote-row>.shared{font-size:.82em;color:var(--sub)}
img{height:auto}

/* Paragraph spacing is explicit; text nodes before an element also count. */
html .ja .pp.pp-gap{margin-top:var(--u)}
html .ja .pp.pp-start{margin-top:0}
/* Each circled subquestion keeps its text, with room around the marker and item. */
.pair .opt.subitem{display:block;padding-left:2em;text-indent:0;margin-top:1.1em}
.pair .opt.subitem.subitem-first{margin-top:0}
.subitem-label{display:inline-block;width:2em;margin-left:-2em;text-indent:0}
.subitem .pp{padding-left:0;text-indent:0}
.section-parent{margin:0 0 var(--u);font-size:14px;color:var(--sub)}
.pager a{flex:1;min-width:0;overflow-wrap:break-word}
.pager .nx{text-align:right}
.pager .pager-direction{display:block;margin-bottom:.35em}
.toc a[aria-current=page]{color:var(--red);text-decoration:underline;text-underline-offset:.16em}

/* Keep off-screen formulas inside the reading column until they are measured. */
main{overflow-x:clip}
@media (min-width:901px){
  .pair>.en{font-size:calc(1em + 1px)}
  .pair.cap>.en{font-size:calc(.94em + 1px)}
  html.m-en .pair>.en{font-size:calc(1.04em + 1px)}
}
.english-hint{margin:.25rem 0 0;font-family:var(--jp);font-size:14px;font-weight:400;line-height:1.8;color:var(--sub);text-indent:0;letter-spacing:0}
html.m-ja .english-hint{display:none}
.english-hint>summary{list-style:none;display:flex;align-items:center;gap:.45em;width:fit-content;min-height:32px;padding:4px 5px 4px 0;font-size:13px;font-weight:400;color:var(--mute);cursor:pointer;user-select:none}
.english-hint>summary::-webkit-details-marker{display:none}
.english-hint>summary::before{content:'▸';width:.8em;text-align:center;font-size:12px}
.english-hint[open]>summary::before{content:'▾'}
.english-hint>summary:hover{color:var(--blue);text-decoration:underline;text-underline-offset:.2em}
.english-hint>summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:2px}
.pair:has(>.english-hint)>.ja{margin-top:calc(.55*var(--u))}
html.m-ja .pair:has(>.english-hint)>.ja{margin-top:0}
.eh-body{margin:.25rem 0 .6rem;padding:13px 16px;border:1px solid var(--rule);border-radius:3px;background:#f7f9fb;overflow-wrap:anywhere}
.eh-words{margin:0}
.eh-entry+.eh-entry{margin-top:.75rem}
.eh-entry dt{display:flex;align-items:baseline;gap:.25em .75em;flex-wrap:wrap;margin:0}
.eh-word{font-family:var(--en);font-size:16px;font-weight:600;color:var(--ink)}
.eh-kana{font-size:12.5px;color:var(--mute);font-weight:400}
.eh-entry dd{margin:1px 0 0}
.eh-entry .eh-form{margin-top:2px;font-size:11.5px;color:var(--mute)}
.eh-form [lang=en]{font-family:var(--en);font-size:13px}
.eh-grammar{margin:0}
.eh-words~.eh-grammar{margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--rule)}
.eh-heading{margin:0 0 .25rem;font-size:12px;font-weight:700;color:var(--sub)}
.eh-quote{margin:.25rem 0 .45rem;font-family:var(--en);font-size:15px;line-height:1.65;font-weight:500;color:var(--ink)}
.eh-explanation{margin:0;line-height:1.9}
@media (max-width:900px){
  .english-hint>summary{min-height:36px}
  .eh-body{padding:12px}
}
@media print{
  .english-hint:not([open]){display:none}
  .eh-body{background:transparent}
}
/* The English divider encloses its reading hint, whether open or closed. */
html.m-both .pair:has(>.english-hint):has(>.ja:not(:empty))>.en:not(:empty){
  border-bottom:0;
  padding-bottom:0;
}
html.m-both .pair:has(>.en:not(:empty)):has(>.ja:not(:empty))>.english-hint{
  border-bottom:1px solid var(--rule);
  padding-bottom:calc(.65*var(--u));
}
@media print{
  html.m-both .pair:has(>.english-hint:not([open])):has(>.ja:not(:empty))>.en:not(:empty){
    border-bottom:1px solid var(--rule);
    padding-bottom:calc(.65*var(--u));
  }
}

/* Figure availability and source attributions. */
figure.rights-omitted{max-width:100%;width:100%;min-height:0}
.rights-omitted .figbox{width:auto;min-height:0;max-width:100%;padding:0}
.figure-omission{box-sizing:border-box;display:block;padding:.85em 1em;margin:.55em auto;border:1px dashed #a7b0b8;border-radius:3px;line-height:1.8;font-size:.94em;color:inherit;background:transparent;max-width:100%}
figure.rights-redrawn{--fw:44em!important;--mw:710px!important;max-width:100%}
figure.rights-redrawn .figbox{max-width:100%}
figure.rights-redrawn img{height:auto;object-fit:contain}
.image-source{font-size:.82em;line-height:1.7;margin-top:.65em;overflow-wrap:anywhere}
.image-source a{text-underline-offset:.15em}
.ja .rights-paragraph{display:block}
.ja .rights-paragraph+.rights-paragraph{margin-top:.85em}
.source-edition{font-size:.87em;line-height:1.75;margin-block:.85em}

.eh-explanation+.eh-explanation{margin-top:.75em}

.eh-key{margin:.3rem 0 .9rem;font-size:12px;line-height:1.85}
.eh-key>summary{width:fit-content;cursor:pointer;min-height:28px;padding:2px 0;color:var(--blue);font-weight:400}
.eh-key>summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.eh-key p{margin:.55rem 0 0}
.eh-reading+.eh-reading{margin-top:1.3rem;padding-top:1rem;border-top:1px solid var(--rule)}
.eh-reading>.eh-quote{margin-bottom:.7rem}
.eh-clause{margin:.7rem 0;padding-left:.65rem;border-left:2px solid #c8d2dd}
.eh-clause-label{margin:0 0 .3rem;font-size:12px;font-weight:600;color:var(--sub)}
.eh-roles{margin:0;display:flex;flex-wrap:wrap;gap:.3rem 1rem}
.eh-part{display:flex;align-items:baseline;gap:.45rem;max-width:100%;min-width:0}
.eh-role{flex:none;margin:0;padding:0 .28rem;min-width:1.1em;border:1px solid #c6d1dd;border-radius:2px;font-family:var(--jp);font-size:11px;font-weight:600;line-height:1.7;color:#304c65;background:#edf2f6}
.eh-role-value{margin:0;min-width:0;font-family:var(--en);font-size:15px;font-weight:400;line-height:1.7;color:var(--ink);overflow-wrap:anywhere}
.eh-subheading{margin:.85rem 0 .3rem;font-size:12px;font-weight:600;color:var(--sub)}
.eh-modifiers{margin:0;padding-left:1.2em;line-height:1.85}
.eh-modifiers li+li{margin-top:.4em}
.eh-reading .eh-explanation+.eh-explanation{margin-top:.8em}
@media(max-width:900px){
  .eh-clause{padding-left:.5rem}
  .eh-roles{gap:.4rem .8rem}
  .eh-key>summary{min-height:32px}
}
@media print{
  .eh-role{background:transparent}
  .eh-clause{break-inside:avoid}
}


/* Keep both languages in one centered reading column on portrait tablets. */
@media screen and (min-width:600px) and (max-width:1100px) and (orientation:portrait){
  .wrap:has(>.side){grid-template-columns:minmax(0,1fr)}
  .wrap:has(>.side)>main{width:100%;max-width:600px;margin-left:auto;margin-right:auto;padding-left:0;padding-right:0}
  .wrap:has(>.side) .pair>.en,.wrap:has(>.side) .pair>.ja{max-width:100%}
  /* Reuse the contents drawer at every portrait tablet width; type stays unchanged. */
  .navbtn{display:flex}
  .side{position:fixed;top:50px;left:0;bottom:0;width:min(87vw,350px);z-index:30;
    background:#fff;border-right:1px solid var(--line);overflow:auto;
    transform:translateX(-101%);transition:transform .22s ease;overscroll-behavior:contain}
  body.nav .side{transform:none;box-shadow:14px 0 44px rgba(12,18,26,.16)}
  .sticky{position:static;max-height:none;padding:22px 20px 44px}
  .scrim{display:block;position:fixed;inset:50px 0 0;z-index:25;
    background:rgba(12,18,26,.42);opacity:0;pointer-events:none;transition:opacity .22s}
  body.nav .scrim{opacity:1;pointer-events:auto}
  body.nav{overflow:hidden}
}
