/* The frame every inner page shares (with stand.css for the pill link and
 * the mesh), in the site's order of depth:
 *
 *  - a section from the menu (news, about, for authors, search...) opens with
 *    a petrol band: a sparse, faint mesh towards the right, the way back, the
 *    title and a line of what the page is; a thin steel-blue line under it;
 *  - a page deep inside (an issue, an article, a book) opens with a wash of
 *    its cover's colour instead, and no mesh: .phead--wash, with --jc set;
 *  - under the line, the quiet light ground and white sheets for reading.
 */

.ppage {
  --stand-light: color-mix(in srgb, var(--brand-mist) 90%, var(--brand));
  position: relative;
  isolation: isolate;
  overflow: clip;
  background: var(--stand-light);
}
body:has(.ppage) .site-footer { margin-top: 0; }
/* a short page still fills the window down to the footer */
.ppage { min-height: calc(100svh - var(--header-h, 4rem) - 12rem); }

/* ── the head ── */
.phead {
  position: relative;
  isolation: isolate;
  border-bottom: 4px solid transparent;
  background:
    radial-gradient(120% 90% at 85% 0%, var(--brand-deep-2), transparent 65%),
    var(--brand-deep);
  color: #fff;
}
.phead__mesh {
  opacity: 0.7;
  -webkit-mask-image: linear-gradient(100deg, transparent 38%, #000 82%);
  mask-image: linear-gradient(100deg, transparent 38%, #000 82%);
}
.phead__inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-md); padding-block: var(--space-lg) calc(var(--space-2xl) + var(--space-xs)); }
.phead__kicker { margin: 0; font-size: 0.875rem; font-weight: 600; color: var(--on-brand-2); }
.phead__kicker a { color: inherit; text-decoration: underline; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); text-underline-offset: 0.25em; }
.phead__kicker a:hover { color: #fff; }
.phead__title {
  margin: 0;
  max-width: 30ch;
  font-family: var(--font-display);
  font-size: clamp(2rem, 1.5rem + 2.2vw, 3.5rem);
  font-weight: 650;
  line-height: 1.06;
  letter-spacing: -0.02em;
  text-wrap: balance;
}
.phead__title--long { font-size: clamp(1.625rem, 1.3rem + 1.4vw, 2.5rem); line-height: 1.15; max-width: 40ch; }
.phead__lead { margin: 0; max-width: 62ch; color: var(--on-brand-2); font-size: var(--text-lead); line-height: 1.5; text-wrap: pretty; }
.phead__meta { display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-lg); margin: 0; font-size: 0.9375rem; color: var(--on-brand-2); }
.phead__meta a { color: #fff; font-weight: 600; }

/* deep pages: a wash of the cover's colour, dark text, a line in that colour */
.phead--wash {
  --wash: color-mix(in srgb, var(--jc) 26%, #f6f7f8);
  background:
    radial-gradient(90% 120% at 100% 0%, color-mix(in srgb, var(--jc) 16%, transparent), transparent 70%),
    var(--wash);
  color: var(--color-ink);
}
.phead--wash .phead__lead, .phead--wash .phead__meta, .phead--wash .phead__kicker { color: var(--color-ink-2); }
.phead--wash .phead__kicker a:hover { color: var(--color-ink); }
.phead--wash .phead__meta a { color: var(--color-ink); }
.ppage:has(.phead--wash) {
  --stand-light: color-mix(in srgb, var(--jc) 6%, #f7f8f9);
  --jc-text: color-mix(in srgb, var(--jc) 70%, #1b2024);
}

/* a narrow band for pages that are mostly a list (an issue): the list starts higher */
.phead--compact .phead__inner { gap: var(--space-xs); padding-bottom: var(--space-xl); }
.phead--compact .phead__crumbs { margin-bottom: var(--space-2xs); }

/* ── the body ── */
.pbody { position: relative; z-index: 1; padding-block: var(--space-2xl) var(--space-3xl); }
.ppage:has(.phead--compact) .pbody { padding-top: var(--space-xl); }
.particle-related { padding-top: 0; }
.ppage:has(.phead--compact) .particle-related { padding-top: 0; }
.pbody--split { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-2xl); align-items: start; }
@media (min-width: 62rem) { .pbody--split { grid-template-columns: minmax(0, 1fr) 21rem; gap: clamp(2rem, 4vw, 3.5rem); } }
@media (min-width: 62rem) { .pbody--toc { grid-template-columns: 15.5rem minmax(0, 1fr); } }

/* a white sheet for reading */
.psheet { padding: clamp(1.25rem, 3vw, 2.5rem); border-radius: 24px; background: #fff; box-shadow: 0 24px 50px -36px rgb(6 30 38 / 0.45); }
.psheet + .psheet { margin-top: var(--space-lg); }
.psheet h2 { margin: 0 0 var(--space-md); font-family: var(--font-display); font-size: clamp(1.25rem, 1.05rem + 0.5vw, 1.625rem); font-weight: 650; line-height: 1.2; }
.psheet--read { max-width: 52rem; }
/* the old texts come with justified lines and empty paragraphs: set them plainly */
.psheet--read .prose-body * { text-align: left !important; }
.psheet--read .prose-body > p:first-child:empty, .psheet--read .prose-body > p:first-child:has(> br:only-child) { display: none; }
.psheet--read .prose-body { max-width: 68ch; font-family: var(--font-display); font-size: var(--text-lead); line-height: 1.7; }
.psheet--read .prose-body p { margin: 0 0 0.9em; }
.psheet--read .prose-body h2, .psheet--read .prose-body h3 { font-family: var(--font-display); margin: 1.4em 0 0.5em; line-height: 1.25; }
.psheet--read .prose-body ul, .psheet--read .prose-body ol { padding-left: 1.3rem; }
.psheet--read .prose-body li { margin-bottom: 0.35em; }
.psheet--read .prose-body a { color: var(--brand-tile); font-weight: 600; }
.psheet--read .prose-body table { width: 100%; border-collapse: collapse; font-family: var(--font-body); font-size: 0.9375rem; }
.psheet--read .prose-body td, .psheet--read .prose-body th { padding: 0.5rem 0.75rem; border-bottom: 1px solid var(--color-rule); text-align: left; vertical-align: top; }

.pkicker { margin: 0 0 var(--space-2xs); font-size: 0.875rem; font-weight: 600; color: var(--color-ink-2); }

/* folded documents: white rows that open (the journal page's way) */
.pfolds { display: grid; gap: var(--space-xs); }
.pfolds details { scroll-margin-top: calc(var(--header-h, 4.5rem) + var(--space-md)); border: 0; border-radius: 16px; background: #fff; box-shadow: 0 0 0 1px rgb(0 0 0 / 0.04); transition: background-color 0.2s ease; }
.pfolds details > summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); min-height: 3.5rem; padding: var(--space-sm) var(--space-lg); font-family: var(--font-display); font-size: 1.0625rem; font-weight: 600; cursor: pointer; list-style: none; }
.pfolds details > summary::-webkit-details-marker { display: none; }
.pfolds details > summary::after { content: ""; flex: none; width: 9px; height: 9px; margin: -4px 0 0; border: 0; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: none; rotate: 45deg; transition: rotate 0.3s var(--ease-out), margin 0.3s var(--ease-out); }
.pfolds details[open] > summary::after { rotate: 225deg; margin-top: 4px; }
.pfolds details > summary:hover { color: var(--color-ink); }
.pfolds details > .prose-body { padding: 0 var(--space-lg) var(--space-lg); max-width: 72ch; }

/* a side card, always in view: a soft tone of the brand (or the cover's)
   colour, dark text, the main button in the colour itself. A dark mix turned
   the warm covers brown; a plain tint vanished on the pale ones; white was flat. */
.pcard {
  --jc: var(--brand-tile);
  --card-ink: var(--color-fg-default);
  --ink-2: color-mix(in srgb, var(--color-fg-default) 64%, transparent);
  --rule: color-mix(in srgb, var(--jc) 30%, transparent);
  --card-2: rgb(255 255 255 / 0.6);  /* the second button */
  display: grid;
  gap: var(--space-lg);
  padding: clamp(1.25rem, 2.5vw, 1.75rem);
  border-radius: 16px;
  color: var(--card-ink);
  /* the journal's hue at one fixed lightness and a capped saturation: pale
     covers do not vanish into the page, bright ones do not shout, grey ones
     stay grey; a soft shadow lifts it off the page */
  background: color-mix(in srgb, var(--jc) 18%, var(--color-canvas-default));
  background: oklch(from var(--jc) 0.925 min(calc(c * 0.4), 0.06) h);
  box-shadow: 0 12px 30px -20px rgb(0 0 0 / 0.35);
}
.ppage:has(.phead--wash) .pcard { --jc: inherit; }
[data-theme="dark"] .pcard {
  --card-2: rgb(255 255 255 / 0.08);
  background: oklch(from var(--jc) 0.3 min(calc(c * 0.4), 0.05) h);
  box-shadow: none;
}
@media (min-width: 62rem) { .pcard { position: sticky; top: calc(var(--header-h, 4rem) + var(--space-lg)); } }
.pcard__label { margin: 0; font-size: 0.875rem; font-weight: 600; color: var(--ink-2); }
.pcard__price { margin: 0; font-family: var(--font-display); font-size: 2rem; font-weight: 650; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.pcard__price--word { font-size: 1.375rem; line-height: 1.25; letter-spacing: 0; }  /* words, not a figure: one line */
.pcard__price--ask { font-family: var(--font-body); font-size: 1.125rem; font-weight: 600; }
.pcard__note { margin: 0; font-size: 0.875rem; line-height: 1.5; color: var(--ink-2); }
.pcard__note a, .pcard a.pcard__link { color: var(--card-ink); font-weight: 600; }
/* the ways to reach the publisher, one to a line and never broken in the middle */
.pcard__contacts { margin-top: 6px; }
.pcard__contacts a { display: block; width: fit-content; white-space: nowrap; }
.pcard__actions { display: grid; gap: var(--space-sm); }
.pcard .jpop__go { justify-content: center; gap: 0.6rem; padding: 0 1.25rem; border-radius: 6px; background: var(--jc); color: var(--jc-ink, #fff); transition: background-color 0.2s ease; }
.pcard .jpop__go:hover { box-shadow: none; background: color-mix(in srgb, var(--jc) 84%, #000); color: var(--jc-ink, #fff); }
.pcard .jpop__arrow { width: auto; height: auto; border-radius: 0; background: none; color: inherit; }
.pcard .jpop__go--download:hover .jpop__arrow svg { translate: none; }
.pcard .download-arrow { transition: translate 0.3s var(--ease-out); }
.pcard .jpop__go--download:hover .download-arrow { translate: 0 2px; }
@media (prefers-reduced-motion: reduce) {
  .pcard .download-arrow { transition: none; }
  .pcard .jpop__go--download:hover .download-arrow { translate: none; }
}
.pcard__ghost { display: grid; place-items: center; min-height: 3rem; padding: 0 1rem; border: 0; border-radius: 6px; background: var(--card-2); color: var(--card-ink); font: inherit; font-weight: 600; cursor: pointer; transition: background-color 0.2s ease; }
.pcard__ghost:hover { background: color-mix(in srgb, var(--card-2), var(--color-canvas-default) 50%); color: var(--card-ink); }
.pcard__section { display: grid; gap: var(--space-xs); padding-top: var(--space-md); border-top: 1px solid var(--rule); }
.pcard__list { display: grid; gap: 0.15rem; margin: 0; padding: 0; list-style: none; }
.pcard__list a { display: block; padding: 0.35rem 0; color: var(--card-ink); font-size: 0.9375rem; line-height: 1.35; }
.pcard__list a:hover { color: var(--card-ink); text-decoration: underline; text-decoration-color: var(--rule); text-underline-offset: 0.2em; }
.pcard :focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }

/* a short notice in the middle of the ground (sign in, the cart...) */
.pnotice { max-width: 38rem; margin-inline: auto; text-align: center; }
.pnotice p { margin: 0 0 var(--space-md); font-size: var(--text-lead); line-height: 1.55; color: var(--color-ink); }
.pnotice__contacts { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-sm); margin-top: var(--space-lg); }
.pnotice__contacts a { display: inline-flex; align-items: center; min-height: 3rem; padding: 0 1.25rem; border-radius: 999px; background: color-mix(in srgb, var(--brand) 12%, #fff); color: var(--color-ink); font-weight: 600; }
.pnotice__contacts a:hover { background: color-mix(in srgb, var(--brand) 22%, #fff); color: var(--color-ink); }

/* a list of article rows on a white sheet (an issue, an author) */
.prows { margin: 0; padding: 0; list-style: none; }
.prows li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.25rem var(--space-lg); padding: var(--space-md) 0; border-top: 1px solid var(--color-rule); }
.prows li:first-child { border-top: 0; padding-top: 0; }
.prows__title { font-weight: 600; line-height: 1.35; color: var(--color-ink); text-wrap: pretty; }
.prows__title:hover { color: var(--jc-text, var(--brand-tile)); }
.prows__meta { grid-column: 1; font-size: 0.875rem; color: var(--color-ink-2); }
.prows__meta a { color: var(--color-ink-2); }
.prows__meta a:hover { color: var(--color-ink); text-decoration: underline; }
.prows__pages { grid-column: 2; grid-row: 1 / span 2; font-size: 0.875rem; color: var(--color-ink-2); font-variant-numeric: tabular-nums; white-space: nowrap; }
.prubric { margin: var(--space-xl) 0 var(--space-sm); font-size: 1.0625rem !important; font-family: var(--font-display) !important; font-weight: 650 !important; color: var(--jc-text, var(--brand-tile)); }
.prubric:first-child { margin-top: 0; }
/* a rubric the old site typed in capitals (with СВЧ, ВГТУ inside, so it cannot
   be lowered): small and spaced, as capitals read best */
.prubric--caps { font-size: 0.8125rem !important; font-family: var(--font-body) !important; font-weight: 700 !important; letter-spacing: 0.04em; }

/* the news: a card per post */
.pnews { display: grid; gap: var(--space-lg); max-width: 52rem; margin: 0; padding: 0; list-style: none; }
.pnews__item h2 { margin: var(--space-2xs) 0 var(--space-sm); }
.pnews__date { font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.04em; color: var(--brand-tile); }
.pnews__text { color: var(--color-ink-2); line-height: 1.6; }

/* every journal with its yearly price (subscription) */
.psubs { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.psubs li { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-md); padding: var(--space-sm) 0; border-top: 1px solid var(--color-rule); }
.psubs li:first-child { border-top: 0; }
.psubs a { display: inline-flex; align-items: baseline; gap: 0.6rem; font-weight: 600; color: var(--color-ink); }
.psubs a::before { content: ""; flex: none; width: 9px; height: 9px; border-radius: 50%; background: var(--jc); translate: 0 -1px; }
.psubs a:hover { color: color-mix(in srgb, var(--jc) 55%, var(--color-ink)); }
.psubs span { color: var(--color-ink-2); font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ── an article ── */
.phead__authors { margin: 0; font-size: 1.0625rem; font-weight: 600; line-height: 1.5; }
.phead__authors a { color: inherit; }
.phead__authors a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.phead__authors sup { margin-left: 1px; font-size: 0.65em; color: var(--color-ink-2); }
.particle { display: grid; gap: var(--space-lg); min-width: 0; }
.particle > .psheet + .psheet { margin-top: 0; }
/* the first sheet, at a glance: affiliations, keywords, the abstract, the dates */
.particle__affiliations { display: grid; gap: 0.25rem; margin: 0; padding: 0; list-style: none; font-size: 0.875rem; color: var(--color-ink-2); line-height: 1.5; }
.particle__affiliations sup { color: var(--color-ink); }
.particle__keywords { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; margin-top: var(--space-md); }
.particle__keywords .pkicker { margin: 0 var(--space-xs) 0 0; }
.ppage .keyword { display: inline-flex; align-items: center; min-height: 2rem; padding: 0 0.8rem; border-radius: 999px; background: color-mix(in srgb, var(--jc, var(--brand)) 10%, #fff); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--jc, var(--brand)) 22%, transparent); color: var(--color-ink); font-size: 0.875rem; }
.ppage .keyword:hover { background: color-mix(in srgb, var(--jc, var(--brand)) 20%, #fff); color: var(--color-ink); }
.particle__card h2 { margin-top: var(--space-lg); padding-top: var(--space-lg); border-top: 1px solid var(--color-rule); }
.particle__card > h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.particle__abstract { max-width: 70ch; font-family: var(--font-display); font-size: 1.0625rem; line-height: 1.6; }
.particle__abstract p { margin: 0 0 0.75em; }
/* a long abstract folds to about eight lines, fading out; the button opens it */
@property --fade { syntax: "<length-percentage>"; inherits: false; initial-value: 0%; }
.particle__abstract { --fade: 0%; -webkit-mask-image: linear-gradient(#000 calc(100% - var(--fade)), transparent); mask-image: linear-gradient(#000 calc(100% - var(--fade)), transparent); }
.particle__abstract.is-folded { --fade: 45%; max-height: calc(1.0625rem * 1.6 * 8); overflow: hidden; }
/* opening and closing: the height slides (set by the script), the fade melts away or back */
.particle__abstract.is-moving { overflow: hidden; }
@media (prefers-reduced-motion: no-preference) {
  .particle__abstract.is-moving { transition: max-height 0.55s var(--ease-out), --fade 0.4s ease; }
}
.particle__more { margin-top: var(--space-xs); padding: 0; border: 0; background: none; color: var(--jc-text, var(--brand-tile)); font: inherit; font-size: 0.9375rem; font-weight: 600; cursor: pointer; }
.particle__more::after { content: "↓"; display: inline-block; margin-left: 0.35em; transition: transform 0.4s var(--ease-out); }
.particle__more[aria-expanded="true"]::after { transform: rotate(180deg); }
.particle__more:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.particle__dates { display: flex; flex-wrap: wrap; gap: var(--space-md) var(--space-2xl); margin: var(--space-lg) 0 0; padding: var(--space-md) 0 0; border-top: 1px solid var(--color-rule); }
.particle__dates div { display: grid; gap: 2px; }
.particle__dates dt { font-size: 0.8125rem; color: var(--color-ink-2); }
.particle__dates dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }

/* how to cite (ГОСТ): the heading with the copy button beside it, the text in a quiet box */
.citation-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-sm); margin-bottom: var(--space-md); }
.citation-head h2 { margin: 0 !important; }
.ppage .citation-copy { min-height: 2.5rem; padding: 0 1rem; border: 0; border-radius: 999px; background: none; box-shadow: inset 0 0 0 1px var(--color-rule); color: var(--color-ink); font: inherit; font-weight: 600; cursor: pointer; }
/* the three labels sit on top of each other, so the button never changes size or line */
.ppage .citation-copy { position: relative; overflow: hidden; isolation: isolate; display: inline-grid; margin-left: auto; align-items: center; justify-items: center; white-space: nowrap; transition: color 0.3s ease 0.08s, box-shadow 0.35s ease; }
.ppage .citation-copy > span { grid-area: 1 / 1; transition: opacity 0.25s ease; }
.ppage .citation-copy > span:not([data-s="idle"]) { opacity: 0; }
.ppage .citation-copy[data-state="copied"] > span[data-s="idle"], .ppage .citation-copy[data-state="failed"] > span[data-s="idle"] { opacity: 0; }
.ppage .citation-copy[data-state="copied"] > span[data-s="copied"], .ppage .citation-copy[data-state="failed"] > span[data-s="failed"] { opacity: 1; }
/* the colour spreads from the point that was pressed */
.ppage .citation-copy::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--jc, var(--brand)); clip-path: circle(0 at var(--x, 50%) var(--y, 50%)); transition: clip-path 0s 0.4s; }
.ppage .citation-copy[data-state="copied"]::before { clip-path: circle(150% at var(--x, 50%) var(--y, 50%)); transition: clip-path 0.55s cubic-bezier(0.22, 0.61, 0.36, 1); }
.ppage .citation-copy[data-state="copied"], .ppage .citation-copy[data-state="copied"]:hover { background: none; color: var(--jc-ink, #fff); box-shadow: inset 0 0 0 1px var(--jc, var(--brand)); }
.ppage .citation-copy[data-state="failed"] { box-shadow: inset 0 0 0 1px var(--jc, var(--brand)); }
/* the tick draws itself */
.citation-tick { width: 0.95em; height: 0.95em; margin-left: 0.35em; vertical-align: -0.1em; }
.citation-tick path { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 0s; }
.ppage .citation-copy[data-state="copied"] .citation-tick path { stroke-dashoffset: 0; transition: stroke-dashoffset 0.3s ease-out 0.2s; }
.citation-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
/* the quote blinks in the journal's colour and fades back */
.ppage .citation-text { position: relative; }
.ppage .citation-text::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: color-mix(in srgb, var(--jc, var(--brand)) 30%, transparent); opacity: 0; }
.ppage .citation-text.is-copied::after { animation: citation-flash 0.9s cubic-bezier(0.22, 0.61, 0.36, 1); }
@keyframes citation-flash { 0% { opacity: 0; } 14% { opacity: 1; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .ppage .citation-copy, .ppage .citation-copy > span, .ppage .citation-copy::before, .citation-tick path { transition: none !important; } .ppage .citation-text.is-copied::after { animation: none; } }
.ppage .citation-copy:hover { background: color-mix(in srgb, var(--jc, var(--brand)) 8%, #fff); }
.ppage .citation-text { margin: 0; padding: var(--space-md) var(--space-lg); border-radius: 14px; background: color-mix(in srgb, var(--jc, var(--brand)) 5%, #f7f8f9); font-family: var(--font-display); font-size: 0.9375rem; line-height: 1.6; overflow-wrap: anywhere; }

.particle .reference-list { font-size: 0.9375rem; line-height: 1.55; }

/* the neighbours in the issue: two cards */
.particle__pager { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-md); margin: 0; padding: 0; border: 0; }
.particle__pager a { display: grid; gap: 0.35rem; padding: var(--space-md) var(--space-lg); border-radius: 18px; background: #fff; color: var(--color-ink); box-shadow: 0 0 0 1px rgb(0 0 0 / 0.04); }
.particle__pager a:hover { color: var(--color-ink); box-shadow: 0 0 0 2px color-mix(in srgb, var(--jc, var(--brand)) 40%, transparent); }
.particle__pager span { font-size: 0.8125rem; font-weight: 600; color: var(--jc-text, var(--brand-tile)); }
.particle__pager strong { font-weight: 600; line-height: 1.35; }
.particle__pager .article-pager__next { grid-column: 2; text-align: right; }
@media (max-width: 40rem) { .particle__pager { grid-template-columns: minmax(0, 1fr); } .particle__pager .article-pager__next { grid-column: 1; text-align: left; } }

/* the card's journal and its neighbouring issues */
.pcard__title { display: block; margin-top: 0.25rem; font-family: var(--font-display); font-size: 1.375rem; font-weight: 650; line-height: 1.2; }
/* the neighbouring issues: two plain links between hairlines, not tiles */
.pcard__steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-md); padding: var(--space-sm) 0; border-block: 1px solid var(--rule); }
.pcard__steps a { display: grid; gap: 2px; color: var(--card-ink); }
.pcard__steps a:hover strong { text-decoration: underline; text-decoration-color: var(--ink-2); text-underline-offset: 0.2em; }
.pcard__steps a[rel="next"] { grid-column: 2; text-align: right; }
.pcard__steps span { font-size: 0.75rem; color: var(--ink-2); }
.pcard__steps strong { font-size: 0.9375rem; white-space: nowrap; }
.pcard button.jpop__go { border: 0; font: inherit; font-weight: 600; cursor: pointer; }

/* ── a book: the cover beside the title ── */
.pbook { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-lg) clamp(1.5rem, 4vw, 3rem); align-items: end; }
@media (min-width: 40rem) { .pbook { grid-template-columns: clamp(9rem, 18vw, 14rem) minmax(0, 1fr); } }
.pbook__cover { display: block; width: 100%; max-width: 14rem; line-height: 0; }
.pbook__cover img { display: block; width: 100%; height: auto; aspect-ratio: 300 / 440; object-fit: cover; }
.pbook__text { display: grid; gap: var(--space-md); }
@media (max-width: 39.99rem) { .pbook__cover { max-width: 9rem; } }

/* the imprint: two quiet columns of facts */
.pspec { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: var(--space-md) var(--space-xl); margin: 0; }
.pspec div { display: grid; gap: 2px; }
.pspec dt { font-size: 0.8125rem; color: var(--color-ink-2); }
.pspec dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }

/* ── the publisher's page for authors ── */
.pauth__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--space-lg) var(--space-2xl); }
.pauth__intro { display: grid; gap: var(--space-md); flex: 1 1 32rem; min-width: 0; }

.pauth__toc { display: none; }
@media (min-width: 62rem) {
  .pauth__toc { display: block; position: sticky; top: calc(var(--header-h, 4rem) + var(--space-lg)); max-height: calc(100svh - var(--header-h, 4rem) - 2 * var(--space-lg)); overflow-y: auto; scrollbar-width: thin; }
}
.pauth__toc .pkicker { margin-top: var(--space-lg); }
.pauth__toc .pkicker:first-child { margin-top: 0; }
.pauth__toc ul { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.pauth__toc a { display: block; padding: 0.4rem 0.8rem; border-radius: 12px; color: var(--color-ink); font-size: 0.9375rem; line-height: 1.35; }
.pauth__toc a:hover { background: rgb(255 255 255 / 0.7); color: var(--color-ink); }

.pauth__docs { display: grid; gap: var(--space-2xl); min-width: 0; }
.pauth__group { margin: 0 0 var(--space-md); font-family: var(--font-display); font-size: clamp(1.25rem, 1.05rem + 0.5vw, 1.625rem); font-weight: 650; }
.pfolds details.doc > summary { align-items: center; }
.pfolds .doc__title { display: grid; gap: 0.2rem; }
.pfolds details.doc > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "title mark" "hint mark"; column-gap: var(--space-md); row-gap: 0.2rem; padding-block: var(--space-md); }
.pfolds details.doc > summary .doc__title { grid-area: title; }
.pfolds details.doc > summary .doc__hint { grid-area: hint; font-family: var(--font-body); font-size: 0.875rem; font-weight: 400; line-height: 1.45; color: var(--color-ink-2); }
.pfolds details.doc > summary::after { grid-area: mark; align-self: center; }
.pfolds details.doc[open] > summary .doc__hint { display: none; }
.pfolds details.doc > .doc__inner { padding: 0 var(--space-lg) var(--space-lg); }
.doc__inner .doc__body { max-width: 72ch; line-height: 1.65; }

/* ── the author's desk: the way of an article, the journals side by side, the documents ── */
.pauth-way { position: relative; z-index: 1; padding-top: var(--space-xl); }
.pauth-docs { padding-top: var(--space-xl); scroll-margin-top: var(--header-h, 4rem); }

/* the way: short rows under hairlines - the step on the left, its documents on the right.
   Kept low on purpose: the documents themselves start right under it. */
.pauth-way .psheet { padding-block: clamp(1.25rem, 2.5vw, 1.75rem); }
.pway { margin: var(--space-sm) 0 0; padding: 0; list-style: none; }
.pway__step, .pway__follow { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-2xs); padding: var(--space-sm) 0; border-top: 1px solid var(--color-rule); }
.pway__title, .pway__follow h3 { margin: 0; font-family: var(--font-display); font-size: 1.0625rem; font-weight: 650; line-height: 1.35; }
.pway__body, .pway__follow-body { display: grid; gap: var(--space-2xs); min-width: 0; }
.pway__go { margin: 0; }
.pway__go .pill-link { min-height: 2.5rem; padding-inline: 1rem; }
.pway__docs { display: flex; flex-wrap: wrap; gap: 0.2rem var(--space-lg); margin: 0; padding: 0; list-style: none; line-height: 1.5; }
.pway__docs a, .pway__more, .pauth__ask a { color: var(--brand-tile); font-weight: 600; text-decoration: underline; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); text-underline-offset: 0.25em; }
.pway__docs a:hover, .pway__more:hover, .pauth__ask a:hover { color: var(--brand-deep); text-decoration-color: currentColor; }
.pway__facts { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; font-size: var(--text-meta); color: var(--color-ink-2); }
.pway__facts li + li::before { content: "·"; margin: 0 0.45em; }
.pway__follow { padding-bottom: 0; }
.pway__follow p { margin: 0; color: var(--color-ink-2); line-height: 1.5; }
.pway__follow .pway__more { white-space: nowrap; }
@media (max-width: 61.99rem) {
  .pway__facts { display: grid; gap: 0.1rem; } .pway__facts li + li::before { content: none; }
}
@media (min-width: 62rem) {
  .pway__step, .pway__follow { grid-template-columns: 15rem minmax(0, 1fr); gap: var(--space-xl); align-items: baseline; }
  .pway__step:first-child { align-items: center; }
}

/* the documents in full */
.pauth-docs__intro { display: grid; gap: var(--space-md); }
.pauth-docs__intro h2 { margin: 0; font-family: var(--font-display); font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); font-weight: 650; line-height: 1.2; }
.pauth__mobile-toc { display: none; }
.pauth__docs section { scroll-margin-top: calc(var(--header-h, 4rem) + 1rem); }
.doc__time { white-space: nowrap; }
.doc__time::after { content: " · "; }
.pauth__ask { margin: 0; color: var(--color-ink-2); }
@media (max-width: 61.99rem) {
  .pauth__mobile-toc { display: flex; flex-wrap: wrap; gap: var(--space-xs); }
  .pauth__mobile-toc a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0.45rem 0.85rem; border-radius: var(--control-radius); background: #fff; color: var(--color-ink); font-size: 0.875rem; font-weight: 600; line-height: 1.3; }
}
@media (max-width: 48rem) {
  .pauth-way { padding-top: var(--space-lg); }
  .pauth-docs { padding-top: var(--space-xl); }
  .pauth__docs { gap: var(--space-xl); }
  .pauth__mobile-toc { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ── a document read in a sheet over the page: from the right on a wide screen, from below on a phone.
      One sheet of paper: its parts stand under hairlines, nothing is boxed twice. ── */
html:has(.preader[open]) { overflow: hidden; }
.preader { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 0; border: 0; background: none; color: var(--color-ink); overflow: hidden; }
.preader::backdrop { background: rgb(8 30 38 / 0.5); animation: preader-veil 0.3s ease both; }
.preader.is-closing::backdrop { animation: preader-veil 0.28s ease reverse both; }
.preader__sheet { position: absolute; inset: 0 0 0 auto; display: grid; grid-template-rows: auto minmax(0, 1fr); width: min(50rem, 100%); background: #fff; box-shadow: -24px 0 60px -30px rgb(6 30 38 / 0.55); animation: preader-in 0.42s var(--ease-out) both; }
.preader.is-closing .preader__sheet { animation: preader-out 0.28s var(--ease-in) both; }
@keyframes preader-veil { from { opacity: 0; } }
@keyframes preader-in { from { translate: 100% 0; } }
@keyframes preader-out { to { translate: 100% 0; } }
.preader__bar { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--space-md); min-height: 3.5rem; padding: var(--space-2xs) var(--space-sm); border-bottom: 1px solid var(--color-rule); }
.preader__back { display: inline-flex; align-items: center; gap: var(--space-xs); min-height: var(--target-min); padding: 0 var(--space-sm); border: 0; border-radius: var(--control-radius); background: none; color: var(--brand-tile); font: inherit; font-weight: 600; cursor: pointer; }
.preader__back:hover, .preader__close:hover { background: color-mix(in srgb, var(--brand) 12%, #fff); }
.preader__group { margin: 0; overflow: hidden; font-size: var(--text-meta); color: var(--color-ink-2); text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.preader__close { position: relative; width: var(--target-min); height: var(--target-min); border: 0; border-radius: var(--control-radius); background: none; color: var(--color-ink); cursor: pointer; }
.preader__close span::before, .preader__close span::after { content: ""; position: absolute; left: 50%; top: 50%; width: 18px; height: 2px; margin: -1px 0 0 -9px; border-radius: 1px; background: currentColor; rotate: 45deg; }
.preader__close span::after { rotate: -45deg; }
.preader__back:focus-visible, .preader__close:focus-visible, .preader__toc button:focus-visible, .preader__turn a:focus-visible, .pscheme__part:focus-visible { outline: 2px solid var(--brand-tile); outline-offset: 2px; }
.preader__scroll { overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.preader__inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); padding: clamp(1.5rem, 5vw, 3rem) clamp(1.25rem, 5vw, 3.5rem) var(--space-2xl); }
.preader__title { margin: 0; font-family: var(--font-display); font-size: clamp(1.75rem, 1.35rem + 1.6vw, 2.5rem); font-weight: 650; line-height: 1.12; letter-spacing: -0.015em; text-wrap: balance; overflow-wrap: anywhere; }
/* the document's own contents, set like a book's: a number, the heading in the display face, hairlines between */
.preader__toc { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: var(--space-xl); counter-reset: toc; }
.preader__toc[hidden] { display: none; }
.preader__toc::before { content: attr(aria-label); grid-column: 1 / -1; padding-bottom: var(--space-xs); font-size: var(--text-meta); color: var(--color-ink-2); }
.preader__toc button { display: grid; grid-template-columns: 1.75rem minmax(0, 1fr); gap: var(--space-xs); align-items: baseline; width: 100%; min-height: var(--target-min); padding: 0.65rem 0; border: 0; border-top: 1px solid var(--color-rule); border-radius: 0; background: none; color: var(--color-ink); font-family: var(--font-display); font-size: 1.0625rem; font-weight: 600; line-height: 1.3; text-align: left; text-wrap: balance; cursor: pointer; counter-increment: toc; transition: color 0.15s ease; }
.preader__toc button::before { content: counter(toc); font-family: var(--font-body); font-size: var(--text-meta); font-weight: 400; color: var(--color-ink-2); font-variant-numeric: tabular-nums; }
.preader__toc button:hover { color: var(--brand-tile); }
/* two columns where there is room, each with its own rows, so a long heading does not stretch its neighbour */
@media (min-width: 40rem) {
  .preader__toc { display: block; columns: 2; column-gap: var(--space-xl); }
  .preader__toc::before { display: block; column-span: all; }
  .preader__toc button { break-inside: avoid; }
}
.preader__scroll:focus { outline: none; }
.preader__text .doc__inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); }
.preader__text .doc__body { max-width: 66ch; padding-top: var(--space-lg); border-top: 1px solid var(--color-rule); font-size: var(--text-lead); line-height: 1.65; }
.preader__text .doc__body > :first-child { margin-top: 0; }
.preader__text .doc__body > :last-child { margin-bottom: 0; }
.preader__text .doc__body * { text-align: left !important; }
.preader__text .doc__body h1, .preader__text .doc__body h2, .preader__text .doc__body h3 { margin: 2em 0 0.6em; font-family: var(--font-display); font-size: 1.3125rem; font-weight: 650; line-height: 1.25; text-wrap: balance; }
.preader__text .doc__body p { margin: 0 0 0.85em; }
.preader__text .doc__body ul, .preader__text .doc__body ol { margin: 0 0 1em; padding-left: 1.25rem; }
.preader__text .doc__body li { margin-bottom: 0.4em; }
.preader__text .doc__body a { color: var(--brand-tile); font-weight: 600; text-decoration: underline; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); text-underline-offset: 0.2em; overflow-wrap: anywhere; }
.preader__turn { display: grid; gap: var(--space-md); padding-top: var(--space-lg); border-top: 1px solid var(--color-rule); }
.preader__turn a { display: grid; gap: 0.15rem; color: var(--color-ink); }
.preader__turn a[hidden] { display: none; }
.preader__turn span { font-size: var(--text-meta); color: var(--color-ink-2); }
.preader__turn strong { font-family: var(--font-display); font-size: 1.0625rem; font-weight: 600; line-height: 1.3; }
.preader__turn a:hover strong { color: var(--brand-tile); }
@media (min-width: 40rem) { .preader__turn { grid-template-columns: repeat(2, minmax(0, 1fr)); } .preader__next { grid-column: 2; text-align: right; } }
@media (max-width: 47.99rem) {
  .preader__sheet { inset: 0; width: 100%; box-shadow: none; }
  @keyframes preader-in { from { translate: 0 100%; } }
  @keyframes preader-out { to { translate: 0 100%; } }
  .preader__text .doc__body { font-size: 1rem; line-height: 1.6; }
}
@media (prefers-reduced-motion: reduce) { .preader__sheet, .preader.is-closing .preader__sheet, .preader::backdrop { animation: none; } }

/* a document at a glance: the figures as a plain table, the manuscript scheme, what to attach, who sees whom */
.pkey { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); }
.pfolds .pkey { margin-bottom: var(--space-lg); }
.pkey h3, .pblind figcaption { margin: 0; font-family: var(--font-display); font-size: 1.3125rem; font-weight: 650; line-height: 1.25; }
.pkey__figures { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: var(--space-xl); margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--color-rule); }
.pkey__figures li { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: var(--space-md); align-items: baseline; padding: 0.6rem 0; border-top: 1px solid var(--color-rule); }
.pkey__figures strong { font-family: var(--font-display); font-size: 1.125rem; font-weight: 650; line-height: 1.3; font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; }
.pkey__figures span { line-height: 1.4; color: var(--color-ink-2); }
.pkey__figures--words li { grid-template-columns: 8.5rem minmax(0, 1fr); }
@media (min-width: 40rem) { .pkey__figures:not(.pkey__figures--words) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.pscheme, .pcheck { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-sm); }
.pscheme__hint { display: none; margin: 0; color: var(--color-ink-2); }
.pscheme.is-live .pscheme__hint { display: block; }
.pscheme__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-md); margin-top: var(--space-xs); }
/* the manuscript itself: a sheet of paper on the desk, its parts ruled off */
.pscheme__page { display: none; }
.pscheme.is-live .pscheme__page { display: grid; align-content: start; padding: var(--space-xs); background: var(--stand-light, #eef4f6); }
.pscheme__part { display: flex; align-items: center; min-height: 2.5rem; margin-top: -1px; padding: 0.35rem 0.75rem; border: 1px solid color-mix(in srgb, var(--brand) 35%, transparent); border-radius: 0; background: #fff; color: var(--color-ink); font: inherit; font-size: var(--text-meta); line-height: 1.25; text-align: left; cursor: pointer; transition: background-color 0.15s ease, color 0.15s ease; }
.pscheme__part:first-child { margin-top: 0; }
.pscheme__part--thin { min-height: 2rem; }
.pscheme__part--title { font-family: var(--font-display); font-size: 1rem; font-weight: 600; }
.pscheme__part--text { min-height: 6rem; align-items: flex-start; padding-top: 0.6rem; }
.pscheme__part--en { margin-top: var(--space-xs); }
.pscheme__part:hover { background: color-mix(in srgb, var(--brand) 12%, #fff); }
.pscheme__part[aria-selected="true"] { position: relative; border-color: var(--brand-tile); background: var(--brand-tile); color: #fff; }
.pscheme__notes { display: grid; gap: var(--space-sm); margin: 0; padding: 0; list-style: none; line-height: 1.55; }
.pscheme__notes li[hidden] { display: none; }
.pscheme__notes strong { display: block; margin-bottom: 0.25rem; font-family: var(--font-display); font-size: 1.125rem; font-weight: 650; }
@media (min-width: 40rem) { .pscheme.is-live .pscheme__grid { grid-template-columns: 14rem minmax(0, 1fr); gap: var(--space-xl); align-items: center; } }

.pcheck__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--space-xs) var(--space-md); }
.pcheck__count { margin: 0; font-size: var(--text-meta); color: var(--color-ink-2); font-variant-numeric: tabular-nums; }
.pcheck__list { display: grid; margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--color-rule); }
.pcheck__list li { border-top: 1px solid var(--color-rule); }
.pcheck__list label { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-sm); align-items: start; min-height: var(--target-min); padding: 0.65rem 0; line-height: 1.4; cursor: pointer; }
.pcheck__list input { width: 1.25rem; height: 1.25rem; margin: 0.08rem 0 0; accent-color: var(--brand-tile); }
.pcheck__list input:checked + span { color: var(--color-ink-2); text-decoration: line-through; text-decoration-color: color-mix(in srgb, currentColor 45%, transparent); }
.pcheck__note { margin: 0; font-size: var(--text-meta); color: var(--color-ink-2); }

/* who sees whom: three names on one line, the editors between the other two */
.pblind { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-md); margin: 0; }
.pblind figcaption { order: -1; }
.pblind__row { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-xs); }
.pblind__side { display: grid; align-content: start; gap: 0.2rem; padding: var(--space-sm) var(--space-md); border: 1px solid color-mix(in srgb, var(--brand) 40%, transparent); }
.pblind__side--mid { border-color: var(--brand-deep); background: var(--brand-deep); color: #fff; }
.pblind__side strong { font-family: var(--font-display); font-size: 1.0625rem; font-weight: 650; }
.pblind__side span { font-size: var(--text-meta); line-height: 1.35; color: var(--color-ink-2); }
.pblind__side--mid span { color: var(--on-brand-2); }
.pblind__link { justify-self: center; width: 1px; height: var(--space-sm); background: var(--brand-tile); }
@media (min-width: 40rem) {
  .pblind__row { grid-template-columns: minmax(0, 1fr) 2.5rem minmax(0, 1fr) 2.5rem minmax(0, 1fr); align-items: stretch; gap: 0; }
  .pblind__link { align-self: center; justify-self: stretch; width: auto; height: 1px; }
}

/* ── search: the pill, where to look, the finer filters - all in the band ── */
.psearch { display: grid; gap: var(--space-md); margin-top: var(--space-xs); }
.psearch .bsearch { max-width: 44rem; }
.psearch__scope { display: inline-flex; flex-wrap: wrap; justify-self: start; gap: 0.25rem; margin: 0; padding: 0.25rem; border: 0; border-radius: 999px; background: rgb(255 255 255 / 0.08); box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.1); }
.psearch__scope label { position: relative; cursor: pointer; }
.psearch__scope input { position: absolute; opacity: 0; pointer-events: none; }
.psearch__scope span { display: inline-flex; align-items: center; min-height: 2.5rem; padding: 0 1rem; border-radius: 999px; color: #fff; font-size: 0.9375rem; font-weight: 600; transition: background-color 0.25s ease, color 0.25s ease; }
.psearch__scope label:hover span { background: rgb(255 255 255 / 0.12); }
.psearch__scope input:checked + span { background: #fff; color: var(--brand-deep); }
.psearch__scope input:focus-visible + span { outline: 2px solid #fff; outline-offset: 2px; }
.psearch__filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-sm) var(--space-md); }
.psearch__filters label { display: grid; gap: 0.3rem; font-size: 0.8125rem; font-weight: 600; color: var(--on-brand-2); }
.psearch__filters select, .psearch__filters input[type="number"] {
  min-height: 2.5rem;
  padding: 0 0.9rem;
  border: 0;
  border-radius: 12px;
  background: rgb(255 255 255 / 0.1);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.14);
  color: #fff;
  font: inherit;
  font-size: 0.9375rem;
  text-transform: none;
  letter-spacing: 0;
}
.psearch__filters select { max-width: 16rem; padding-right: 2rem; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.7rem center; background-size: 14px; }
.psearch__filters select option { color: #12313b; }
.psearch__filters select:focus-visible, .psearch__filters input:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.psearch__years > span { display: inline-flex; align-items: center; gap: 0.35rem; color: #fff; }
.psearch__years input { width: 5.5rem; }
.psearch__filters input::placeholder { color: rgb(255 255 255 / 0.55); }
.psearch__reset { align-self: center; min-height: 2.5rem; display: inline-flex; align-items: center; padding: 0 0.5rem; font-weight: 600; color: #fff; text-decoration: underline; text-decoration-color: rgb(255 255 255 / 0.35); text-underline-offset: 0.25em; }
.psearch__reset:hover { color: #fff; text-decoration-color: currentColor; }

/* Search has its own quieter controls, without the glass and capsule styling. */
.phead--search .phead__inner { gap: 1rem; padding-bottom: clamp(2rem, 4vw, 3rem); }
.phead--search .phead__title { font-size: clamp(2rem, 1.6rem + 1.5vw, 3rem); }
.psearch { gap: 1.5rem; margin-top: .15rem; }
.psearch .bsearch { max-width: 52rem; min-height: 3.5rem; padding: .3rem .3rem .3rem 1.1rem; border-radius: 18px; box-shadow: none; }
.psearch .bsearch__go { align-self: stretch; min-width: 6rem; border-radius: 13px; }
.psearch__scope { gap: 0 1.75rem; padding: 0; border-radius: 0; background: none; box-shadow: none; border-bottom: 1px solid rgb(255 255 255 / .25); }
.psearch__scope span { min-height: 2.75rem; padding: 0; border-radius: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; color: rgb(255 255 255 / .72); font-weight: 500; }
.psearch__scope label:hover span { background: none; color: #fff; }
.psearch__scope input:checked + span { background: none; color: #fff; border-bottom-color: #fff; }
.psearch__filters { gap: 1rem 1.5rem; }
.psearch__filters label { gap: .25rem; font-weight: 500; }
.psearch__filters select, .psearch__filters input[type="number"] { border: 0; border-bottom: 1px solid rgb(255 255 255 / .42); border-radius: 0; background-color: transparent; box-shadow: none; padding-left: 0; font-weight: 500; }
.psearch__filters select { min-width: 10rem; }
.psearch__years input { width: 4.5rem; }
.psearch__reset { align-self: end; padding: 0; color: var(--on-brand-2); font-size: .875rem; font-weight: 500; }
@media (max-width: 640px) {
  .phead--search .phead__inner { padding-bottom: 2rem; }
  .psearch { gap: 1.15rem; }
  .psearch .bsearch { min-height: 3.25rem; }
  .psearch .bsearch__go { min-width: 4.75rem; padding: 0 .8rem; }
  .psearch__scope { gap: 0 1.15rem; }
  .psearch__scope span { min-height: 2.5rem; font-size: .875rem; }
  .psearch__filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
  .psearch__filters label, .psearch__filters select { min-width: 0; width: 100%; }
  .psearch__years input { width: min(4.5rem, 38%); }
  .psearch__reset { justify-self: start; }
}

.presults { display: grid; gap: var(--space-lg); }
.presults > .psheet + .psheet { margin-top: 0; }
.presults__count { margin-left: 0.35rem; font-family: var(--font-body); font-size: 0.875rem; font-weight: 600; color: var(--color-ink-2); }
.presults .bpager { margin-top: var(--space-xl); }
.presults .bpager a { background: color-mix(in srgb, var(--brand) 8%, #fff); }
.presults .bpager a.active { background: var(--brand-deep); }
.presults .pager__gap { display: grid; place-items: center; min-width: 2rem; color: var(--color-ink-2); }
.presults__books { grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); }

/* an article row can carry its journal's colour as a dot */
.prows--dots .prows__title { position: relative; padding-left: 1.1rem; }
.prows--dots .prows__title::before { content: ""; position: absolute; left: 0; top: 0.5em; width: 8px; height: 8px; border-radius: 50%; background: var(--jc); }
.prows--dots .prows__meta { padding-left: 1.1rem; }

/* names as quiet pills (authors found, journals found) */
.pchips { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0; padding: 0; list-style: none; }
.pchips a { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 2.5rem; padding: 0 1rem; border-radius: 999px; background: color-mix(in srgb, var(--jc, var(--brand)) 9%, #fff); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--jc, var(--brand)) 20%, transparent); color: var(--color-ink); font-weight: 600; }
.pchips a:hover { background: color-mix(in srgb, var(--jc, var(--brand)) 18%, #fff); color: var(--color-ink); }
.pchips a span { font-size: 0.8125rem; font-weight: 500; color: var(--color-ink-2); }
.pchips__dot::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--jc); }

/* a year over its articles (an author) */
.pyear { font-variant-numeric: tabular-nums; }
.phead .pchips a { background: rgb(255 255 255 / 0.55); box-shadow: inset 0 0 0 1px rgb(0 0 0 / 0.06); }
.phead .pchips a:hover { background: #fff; }

/* a form holding a card's main button fills the row like the button would */
.pcard__actions form { display: grid; }
.pcard__actions form .jpop__go { width: 100%; }

/* an error page (403, a stale form): what happened and the ways on */
.perror p { max-width: 60ch; }
.perror__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm) var(--space-lg); margin-top: var(--space-lg); }
.perror__home { font-weight: 600; }
.perror__actions .pill-link { display: inline-flex; align-items: center; white-space: nowrap; }

/* ── Phones: an article reads at a glance ──
   The keywords in one row to swipe instead of a column of pills; a long title
   a step smaller, so the authors are on the first screen. */
@media (max-width: 40rem) {
  .particle__keywords {
    display: block; white-space: nowrap; overflow-x: auto; scrollbar-width: none;
    margin-inline: calc(-1 * clamp(1.25rem, 3vw, 2.5rem)); padding-inline: clamp(1.25rem, 3vw, 2.5rem);
    -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent);
  }
  .particle__keywords::-webkit-scrollbar { display: none; }
  .particle > .psheet { min-width: 0; }  /* the row scrolls inside the sheet, it does not widen it */
  .particle__keywords .pkicker { display: block; margin: 0 0 var(--space-xs); }  /* the label above, the words in a row */
  .particle__keywords .keyword { margin-right: 0.4rem; }
  .phead__title--long { font-size: 1.5rem; line-height: 1.18; }
}

/* ── "Подобрать журнал" (journal_match.html) ──
   One sheet: on a wide screen how it works sits on the left, the form and the
   answer on the right. Each suggested journal: its cover, the facts that
   decide (close articles, White List, VAK, how long it usually takes), the
   close articles themselves, and the way to submit. */
.pmatch__sheet { display: grid; gap: var(--space-lg); }
@media (min-width: 62rem) {
  .pmatch__sheet { grid-template-columns: 15.5rem minmax(0, 1fr); gap: var(--space-lg) clamp(2rem, 4vw, 3.5rem); }
  .pmatch__results { grid-column: 2; }
}
.pmatch__intro { display: grid; align-content: start; gap: var(--space-sm); }
.pmatch__intro h2 { margin: 0; }
.pmatch__intro p { margin: 0; color: var(--color-ink-2); line-height: 1.55; }
.pmatch__intro .pmatch__private { font-size: 0.875rem; }
.pmatch__steps { display: grid; gap: var(--space-xs); margin: 0; padding-left: 1.2rem; color: var(--color-ink-2); line-height: 1.5; }
.pmatch__steps li::marker { color: var(--brand-tile); font-weight: 700; }

/* on the page for authors: one line leading to it */
.pmatch-cta { margin-top: var(--space-2xl); }
.pmatch-cta + .pbody { padding-top: var(--space-xl); }
.pmatch-cta__link {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-sm) var(--space-lg);
  padding: var(--space-md) var(--space-md) var(--space-md) var(--space-lg);
  border-radius: 16px; background: var(--color-paper); box-shadow: 0 0 0 1px rgb(0 0 0 / 0.04), 0 16px 34px -26px rgb(6 30 38 / 0.45);
  color: var(--color-ink); transition: box-shadow 0.2s ease;
}
.pmatch-cta__link:hover { color: var(--color-ink); box-shadow: 0 0 0 1px color-mix(in srgb, var(--brand) 40%, transparent), 0 16px 34px -26px rgb(6 30 38 / 0.45); }
.pmatch-cta__text { flex: 1 1 24rem; color: var(--color-ink-2); line-height: 1.5; }
.pmatch-cta__text strong { color: var(--color-ink); font-weight: 650; }
.pmatch-cta__go { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 2.75rem; padding: 0 1.25rem; border-radius: 6px; background: var(--brand-tile); color: #fff; font-weight: 600; white-space: nowrap; transition: background-color 0.2s ease; }
.pmatch-cta__link:hover .pmatch-cta__go { background: var(--brand-tile-hover); }
.pmatch-cta__go span { transition: translate 0.3s var(--ease-out); }
.pmatch-cta__link:hover .pmatch-cta__go span { translate: 0.15rem 0; }
.pmatch__opt { font-weight: 400; }
.pmatch__submit { cursor: pointer; border: 0; font: inherit; font-weight: 600; }
.pmatch__results { padding-top: var(--space-lg); border-top: 1px solid var(--color-rule); }
.pmatch__head { margin: 0 0 var(--space-xs); font-family: var(--font-display); font-size: 1.25rem; font-weight: 650; }
.pmatch__list { display: grid; margin: 0; padding: 0; list-style: none; }
.pmatch__item { display: grid; grid-template-columns: 5rem minmax(0, 1fr); gap: var(--space-lg); padding: var(--space-lg) 0; }
.pmatch__item + .pmatch__item { border-top: 1px solid var(--color-rule); }
.pmatch__cover { display: block; width: 5rem; aspect-ratio: 300 / 410; border-radius: var(--radius-cover); overflow: hidden; box-shadow: 0 0 0 1px rgb(0 0 0 / 0.06), 0 8px 18px -10px rgb(4 20 26 / 0.45); }
.pmatch__cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pmatch__body { display: grid; justify-items: start; gap: var(--space-xs); min-width: 0; }
.pmatch__best { margin: 0; font-size: 0.875rem; font-weight: 600; color: color-mix(in srgb, var(--jc) 55%, var(--color-ink)); }
.pmatch__name { margin: 0; font-family: var(--font-display); font-size: 1.25rem; font-weight: 650; line-height: 1.25; }
.pmatch__name a { color: var(--color-ink); }
.pmatch__name a:hover { color: var(--color-ink); text-decoration: underline; text-underline-offset: 0.2em; }
.pmatch__facts { display: flex; flex-wrap: wrap; gap: 0.15rem 0; margin: 0; padding: 0; list-style: none; font-size: 0.9375rem; color: var(--color-ink-2); }
.pmatch__facts li:first-child { color: var(--color-ink); font-weight: 600; }
.pmatch__facts li + li::before { content: "·"; margin: 0 0.55rem; color: var(--color-ink-2); }
.pmatch__spec { margin: 0; font-size: 0.9375rem; color: var(--color-ink-2); }
.pmatch__spec::before { content: "— "; }
.pmatch__spec.is-yes { color: #1d7a4c; font-weight: 600; }
.pmatch__spec.is-yes::before { content: "✓ "; }
.pmatch__label { margin: var(--space-xs) 0 0; font-size: 0.875rem; font-weight: 600; color: var(--color-ink-2); }
.pmatch__examples { display: grid; gap: 0.35rem; margin: 0; padding: 0; list-style: none; font-size: 0.9375rem; line-height: 1.4; }
.pmatch__examples a { color: var(--color-ink); }
.pmatch__examples a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.pmatch__examples span { margin-left: 0.35rem; color: var(--color-ink-2); font-variant-numeric: tabular-nums; }
.pmatch .pmatch__go { margin-top: var(--space-sm); background: var(--jc); color: var(--jc-ink); }
.pmatch .pmatch__go:hover, .pmatch .pmatch__go:focus-visible { background: color-mix(in srgb, var(--jc) 84%, #000); color: var(--jc-ink); }
.pmatch__note, .pmatch__empty { margin: var(--space-sm) 0 0; font-size: 0.875rem; line-height: 1.55; color: var(--color-ink-2); }
.pmatch__empty { font-size: 1rem; color: var(--color-ink); }
.pmatch__empty a { color: var(--brand-tile); font-weight: 600; }
@media (max-width: 40rem) {
  .pmatch__item { grid-template-columns: 3.75rem minmax(0, 1fr); gap: var(--space-md); }
  .pmatch__cover { width: 3.75rem; }
  .pmatch__facts { display: grid; gap: 0.15rem; }  /* a column: dots would start the wrapped lines */
  .pmatch__facts li + li::before { content: none; }
}
