/* Through other eyes (foreign-sources/): a facing-page bilingual edition.
   Desktop: sticky language index on the left; each excerpt is a pair of facing columns (original | English)
   with a book-spine rule between them and the language badge hanging in the left margin.
   Phones: one column, a sticky row of language tabs, and a Both / Original / English control per section. */

.t-foreign{--fx-gap:clamp(28px,4vw,56px);--fx-badge:2.5rem}

/* ---------- language tabs (below 1100px): sticky, scrolls sideways, fades at the edges */
.fx-tabs{position:sticky;top:var(--head-h);z-index:10;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line);transition:top var(--d-2) var(--ease-out)}
.head-hidden .fx-tabs{top:env(safe-area-inset-top,0px)}
.fx-tabs nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;-webkit-mask:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 24px),transparent);mask:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 24px),transparent)}
.fx-tabs nav::-webkit-scrollbar{display:none}
.fx-tabs a{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 12px;color:var(--dim);text-decoration:none;font-size:var(--t-sm);font-weight:700;border-bottom:2px solid transparent;white-space:nowrap}
.fx-tabs a[aria-current="true"]{color:var(--ink);border-bottom-color:var(--blue)}
.fx-tabs a:last-child{margin-right:24px}
@media (min-width:1100px){.fx-tabs{display:none}}
.no-js .fx-tabs{position:static}

/* ---------- layout with the sticky index */
.fx-layout{display:block;padding-block:8px 24px}
@media (min-width:1100px){.fx-layout{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:48px}}
@media (min-width:1260px){.fx-layout{gap:88px}}
.fx-rail{display:none}
@media (min-width:1100px){
  .fx-rail{display:block}
  .fx-rail nav{position:sticky;top:calc(var(--head-h) + 28px);max-height:calc(100vh - var(--head-h) - 56px);overflow:auto;padding:4px 4px 16px 0;scrollbar-width:thin}
}
.fx-rail-h{font:400 var(--t-sm)/1.4 var(--display);color:var(--dim);margin:28px 0 12px}
.ix,.ix-sub{list-style:none;margin:0;padding:0}
.ix > li{border-top:1px solid var(--line)}
.ix-l{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;padding:8px 0 8px 12px;margin-left:-12px;color:var(--dim);text-decoration:none;border-left:2px solid transparent}
.ix-l:hover{color:var(--ink)}
.ix-l[aria-current="true"]{color:var(--ink);border-left-color:var(--blue)}
.ix-b{display:flex;gap:3px}
.ix-b .lb{position:static;width:1.9rem;height:1.9rem;font-size:.6875rem}
.ix-ring{width:1.9rem;height:1.9rem;display:grid;place-items:center}
.ix-ring::before{content:"";width:9px;height:9px;border:1.5px solid var(--line-strong);border-radius:50%}
.ix-t{font:400 1.125rem/1.2 var(--display)}
.ix-n{font:400 var(--t-sm) var(--display);font-variant-numeric:lining-nums tabular-nums;color:var(--dim)}
.ix-sub{margin:-2px 0 10px;padding-left:12px;border-left:1px solid var(--line);margin-left:1px}
.ix-sub a{display:block;padding:5px 0 5px 12px;font-size:var(--t-xs);line-height:1.35;color:var(--dim);text-decoration:none}
.ix-sub a:hover{color:var(--ink);text-decoration:underline}
.ix-sub a[aria-current="true"]{color:var(--ink)}
.js .ix > li:not(.on) .ix-sub{display:none}

/* ---------- lead */
.fx-lead{margin:28px 0 8px;color:var(--dim)}
.fx-lead p{font:400 var(--t-lg)/1.5 var(--display);color:var(--dim)}
@media (max-width:720px){.fx-lead p{font-size:1.125rem}}

/* ---------- a language section */
.fx-sec{padding-top:32px;margin-top:40px;border-top:1px solid var(--line-strong);scroll-margin-top:calc(var(--head-h) + 56px)}
@media (min-width:1100px){.fx-sec{scroll-margin-top:calc(var(--head-h) + 16px)}}
.fx-sh{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 20px;margin-bottom:12px}
.fx-sh h2{margin:0;font-size:var(--t-h1);line-height:1}
.fx-meta{margin:0;font:400 var(--t-body) var(--display);font-variant-numeric:lining-nums;color:var(--dim)}

/* column header, said once per section; sticky while you read the facing columns */
.fx-cols{display:none}
@media (min-width:721px){
  .fx-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:var(--fx-gap);position:sticky;top:var(--head-h);z-index:5;
    margin:20px 0 0;padding:10px 0 8px;background:var(--bg);border-bottom:1px solid var(--line-strong);font-size:var(--t-xs);font-weight:700;color:var(--dim)}
  .fx-cols span + span{padding-left:2px}
}
@media (min-width:721px) and (max-width:1099px){.fx-cols{top:calc(var(--head-h) + 45px)}.head-hidden .fx-cols{top:45px}}

/* ---------- topic */
.topic{padding-top:8px}
.topic h3{margin:40px 0 4px;font-size:var(--t-h3);scroll-margin-top:calc(var(--head-h) + 100px)}

/* ---------- one excerpt: citation, facing pairs, what it settles */
.fx{padding:20px 0 26px;border-bottom:1px solid var(--line)}
.fx .src{margin:0 0 14px;font-size:var(--t-sm);line-height:1.5;color:var(--dim);max-width:72ch}
.fx .src a{color:var(--blue);display:inline-block;padding-block:3px}
.fps{display:flex;flex-direction:column;gap:14px}
.fp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:var(--fx-gap);
  background:linear-gradient(var(--line-strong),var(--line-strong)) 50% 0/1px 100% no-repeat}
.fp blockquote,.fp .orig,.fp .en{margin:0;padding:0;border:0;background:none;min-width:0}
.fp p{margin:0}
.fp .orig{position:relative;font:400 var(--t-read)/1.6 var(--display);color:var(--ink);font-style:normal}
.fp .en{font-size:var(--t-body);line-height:1.62;color:var(--ink)}
.fp .orig:lang(ja){font-family:"Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP","Noto Serif CJK JP","Source Han Serif JP",var(--display);font-style:normal;line-height:1.85;font-size:clamp(1rem,.95rem + .25vw,1.125rem);line-break:strict}
.fp .orig:lang(ru){font-family:var(--display),"Noto Serif","PT Serif",Georgia,serif}
.fp.solo{background:none;grid-template-columns:1fr}
.fp.pub .none p{font-size:var(--t-sm)}
.fp .pl{font-size:var(--t-xs);font-weight:700;color:var(--dim);margin-bottom:4px}

/* language badge, hanging in the margin to the left of the original */
.lb{display:inline-grid;place-items:center;width:var(--fx-badge);height:var(--fx-badge);border:1px solid var(--line-strong);border-radius:50%;
  font:700 .75rem/1 var(--body);letter-spacing:.06em;color:var(--ink);text-decoration:none;background:var(--bg);flex:none}
abbr.lb{cursor:help}
@media (min-width:1260px){.fp .orig > .lb{position:absolute;left:calc(-1 * var(--fx-badge) - 18px);top:.1em}}
@media (max-width:1259px){.fp .orig{padding-left:44px}.fp .orig > .lb{position:absolute;left:0;top:.2em;width:2rem;height:2rem;font-size:.6875rem}}

/* what it settles + the links into the record */
.st{display:grid;grid-template-columns:22px minmax(0,1fr);gap:0 10px;margin-top:18px;max-width:78ch}
.st::before{content:"";width:16px;height:16px;margin-top:.3em;background:var(--blue);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-12 -12 24 24'%3E%3Cpath d='M0-12 3.3-3.8h8.7l-7 5.4 2.7 8.2L0 4.8-7.6 9.8l2.7-8.2-7-5.4h8.7z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-12 -12 24 24'%3E%3Cpath d='M0-12 3.3-3.8h8.7l-7 5.4 2.7 8.2L0 4.8-7.6 9.8l2.7-8.2-7-5.4h8.7z'/%3E%3C/svg%3E") center/contain no-repeat}
.st > *{grid-column:2}
.st p{margin:0}
.st-k{font-weight:700}
.st-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px!important}
.st-links .st-k{font-size:var(--t-sm);color:var(--dim);margin-right:2px}
.st-links a{display:inline-flex;align-items:baseline;gap:8px;min-height:32px;padding:5px 14px;border:1px solid var(--line-strong);border-radius:999px;
  color:var(--ink);text-decoration:none;font-size:var(--t-sm);line-height:1.35;transition:border-color var(--d-1),background-color var(--d-1)}
.st-links a:hover{border-color:var(--blue);background:var(--bg3)}
.st-links .k{font-size:var(--t-xs);font-weight:700;color:var(--blue)}
@media (pointer:coarse){.st-links a{min-height:44px;align-items:center}}

/* summaries (not quotes) and the "Not reached" lists */
.fsum{margin:18px 0 0;padding:12px 0 12px 18px;border-left:2px dashed var(--line-strong);color:var(--dim);max-width:78ch}
.fsum p{margin:0}
.fsum .st-k{color:var(--ink)}
.topic.not-reached h3{font-size:var(--t-lg);font-weight:600;color:var(--dim)}
ul.nr{list-style:none;margin:8px 0 0;padding:0;max-width:78ch;color:var(--dim);font-size:var(--t-sm)}
ul.nr li{position:relative;padding:8px 0 8px 26px;border-bottom:1px dotted var(--line)}
ul.nr li::before{content:"";position:absolute;left:4px;top:.95em;width:9px;height:9px;border:1.5px solid var(--line-strong);border-radius:50%}
ul.nr a{display:inline-block;padding-block:2px}
.fx-sec.plain .fx-more ul.nr{font-size:var(--t-body);color:var(--ink)}
.fx-sec.plain .fx-more ul.nr li{padding-block:12px}
.fx-sec.plain .fx-more ul.nr strong{font-weight:700}

/* ---------- phones: one column, Both / Original / English */
.fx-seg{display:none;border:0;margin:0;padding:0;min-width:0;flex:1 1 100%}
.fx-seg .seg{max-width:420px}
.fx-seg .seg label{min-height:44px;font-size:var(--t-sm)}
@media (max-width:720px){
  .fx-seg{display:block;margin-top:12px}
  .fp{grid-template-columns:1fr;background:none;row-gap:10px}
  .fp .en{padding-left:14px;border-left:2px solid var(--line-strong)}
  .fp.pub .none{display:none}
  .fx-sec:has(input[value="en"]:checked) .fp:not(.pub) .orig{display:none}
  .fx-sec:has(input[value="en"]:checked) .fp .en{padding-left:0;border-left:0}
  .fx-sec:has(input[value="orig"]:checked) .fp:not(.pub) .en{display:none}
}

/* ---------- print: both columns, no controls */
@media print{
  .fx-layout{display:block}
  .fx-cols{display:grid!important;grid-template-columns:1fr 1fr;column-gap:24px;position:static;border-bottom:1px solid #888;font-size:9pt}
  .fp{grid-template-columns:1fr 1fr!important;column-gap:24px}
  .fp .orig,.fp .en{display:block!important}
  .fx{break-inside:avoid}
  .fp .orig > .lb{float:left;position:static;width:1.6rem;height:1.6rem;margin-right:6px}
  .st-links{display:none}
}
