/* Nicecard demo — "Editorial No.1" (第一期) invitation style. Everything is scoped under .nci--edno1,
   .nci-cover--edno1 and .nci-float--edno1 so the other styles are untouched; new classes use the edn-
   prefix. The page is a size container, so every measurement is in cqw and the layout keeps its
   proportions in the 372px phone frame, the 390px editor canvas and a 390px phone.
   The material is coated paper printed in one ink. Ground is a paper white with almost no warmth,
   the text is a near-black, and everything between them is grey. One spot colour exists — a printer's
   blue — and it is spent exactly three times on the whole page: the hairline under the masthead, the
   rule under the day count, and the rule across the head of the reply card. It never carries a word
   and it never appears a fourth time. (--nci-sel is set to it as well, but that is the editor's own
   selection outline — chrome around the page, not ink on it.)
   Every colour that carries text clears 4.5:1 on the paper: --edn-ink 16.4:1, --edn-ink-2 10.3:1 and
   --edn-grey 5.5:1. The smallest type that carries information is 2.6cqw (10px at 390) and the two
   controls a guest presses — the dietary tags and the letters button — are set at 2.8cqw. Exactly
   three ornaments are set below the floor, all of them printer's furniture rather than words the
   guest reads: the running head in the folio (2.3cqw), the tear line under the reply card (2.2cqw)
   and the colophon mark (2.3cqw). Nothing else on the page is smaller than the floor.
   Type has four jobs and four faces: Playfair Display for the masthead, the headings, the names and
   the day count; Archivo for folios, standfirsts and every small caps label; Libre Baskerville for the
   two-column body and the letters page; EB Garamond italic for captions, each hung on a short rule.
   The photographs are desaturated here rather than in the files, so a couple's own colour photographs
   join the system the moment they are dropped in. --edn-cover-film is the documented way back out: set
   it to `none` on .nci--edno1 and the cover plate alone prints at full strength. */

.nci--edno1,
.nci-cover--edno1,
.nci-float--edno1 {
  --edn-paper: #fdfcfa;
  --edn-paper-2: #f3f1ed;
  --edn-ink: #12100e;
  --edn-ink-2: #3a3733;
  --edn-grey: #6b6761;
  --edn-rule: rgba(18, 16, 14, 0.24);
  --edn-rule-2: rgba(18, 16, 14, 0.11);
  --edn-spot: #1b3fd1;
  --edn-g: 8.5cqw;
  --edn-film: grayscale(1) contrast(1.04);
  --edn-disp: 'Playfair Display', 'Noto Serif SC', Georgia, serif;
  --edn-text: 'Libre Baskerville', 'Noto Serif SC', Georgia, serif;
  --edn-cap: 'EB Garamond', 'Noto Serif SC', Georgia, serif;
  --edn-grot: 'Archivo', 'Noto Sans SC', 'PingFang SC', system-ui, sans-serif;
}

.nci--edno1 {
  container-type: inline-size;
  overflow-x: clip;
  overflow-y: visible;
  background: var(--edn-paper);
  color: var(--edn-ink);
  font-family: var(--edn-text);
  --nci-bg: var(--edn-paper);
  --nci-soft: var(--edn-paper-2);
  --nci-slot-line: rgba(18, 16, 14, 0.4);
  --nci-slot-ink: var(--edn-ink-2);
  --nci-hint: rgba(18, 16, 14, 0.4);
  --nci-sel: #1b3fd1;
}

/* flow-root keeps a block's first and last child margins inside it, so a text-first block still opens
   with air and a text-last one does not run into the plate below it. */
.nci--edno1 .nci-section {
  display: flow-root;
  padding: 0 0 17cqw;
}

.nci--edno1 .nci-s-cover {
  padding-bottom: 0;
}

.nci--edno1 .nci-s-wishes {
  padding-bottom: 4cqw;
}

/* Every drawn piece on this page is ornament: none of them may take a tap from the photo slot or the
   field underneath. */
.nci--edno1 .edn-head-rule,
.nci--edno1 .edn-mast-rule,
.nci--edno1 .edn-spot-rule,
.nci--edno1 .edn-cap-rule,
.nci--edno1 .edn-toc-dots,
.nci--edno1 .edn-folio,
.nci--edno1 .edn-plan-page,
.nci--edno1 .edn-card-tear,
.nci--edno1 .edn-card-rule,
.nci--edno1 .edn-stamp {
  pointer-events: none;
}

/* The one ink that is not black or grey, and the only three places it is printed. */
.nci--edno1 .edn-spot-rule {
  display: block;
  height: 2px;
  margin: 3cqw var(--edn-g) 0;
  background: var(--edn-spot);
}

/* ───── photographs ─────
   One filter, declared once: the issue is monochrome, and a colour photograph dropped into any slot
   joins it without being edited. */

.nci--edno1 .nci-photo img {
  filter: var(--edn-film);
}

/* No ground of its own: the photo slot paints the empty state, and a plate ground would otherwise show
   as a grey lip under any plate whose picture is shorter than its box. */
.nci--edno1 .edn-plate {
  position: relative;
  margin: 0;
}

.nci--edno1 .edn-plate-img {
  width: 100%;
  height: 100%;
}

/* The cover plate is the one picture on the page whose height is not a free choice: the masthead
   above it and the names, the date and the standfirst below it all have to stand on the first screen.
   6/5 is the tallest it can be and still leave the dateline above the fold of a 390x844 phone, and it
   is the share the cover overlay's own plate takes, so the picture does not change size as the issue
   opens. */
.nci--edno1 .edn-plate--cover {
  aspect-ratio: 6 / 5;
  --edn-film: var(--edn-cover-film, grayscale(1) contrast(1.04));
}

/* A 35mm frame, 2/3: narrower than the 3/4 library photographs, so the crop tool can slide the picture
   sideways without zooming first. */
.nci--edno1 .edn-plate--tall {
  aspect-ratio: 2 / 3;
  margin: 10cqw var(--edn-g) 0;
}

.nci--edno1 .edn-plate--tallish {
  aspect-ratio: 4 / 5;
}

.nci--edno1 .edn-plate--square {
  aspect-ratio: 1 / 1;
}

.nci--edno1 .edn-plate--wide {
  aspect-ratio: 16 / 10;
  margin: 10cqw var(--edn-g) 0;
}

.nci--edno1 .edn-plate--band {
  aspect-ratio: 16 / 9;
  margin: 11cqw var(--edn-g) 0;
}

.nci--edno1 .edn-plate--full {
  margin: 9cqw var(--edn-g) 0;
}

/* The full-bleed spread: edge to edge, no mat, no rule. 4/5 rather than the photographs' own 3/4, so the
   crop tool has height to move through. */
.nci--edno1 .edn-bleed {
  position: relative;
  aspect-ratio: 4 / 5;
  margin: 10cqw 0 0;
  background: var(--edn-paper-2);
}

.nci--edno1 .edn-bleed-img {
  position: absolute;
  inset: 0;
}

.nci--edno1 .edn-bleed--close {
  aspect-ratio: 16 / 9;
  margin-top: 14cqw;
}

/* ───── captions: italic, hung on a short rule ───── */

.nci--edno1 .edn-cap {
  padding: 3cqw var(--edn-g) 0;
  font-family: var(--edn-cap);
  font-size: 3.2cqw;
  font-style: italic;
  line-height: 1.65;
  letter-spacing: 0.01em;
  color: var(--edn-grey);
}

.nci--edno1.nci--lang-zh .edn-cap {
  font-style: normal;
  font-size: 3cqw;
  letter-spacing: 0.06em;
}

.nci--edno1 .edn-cap-rule {
  display: block;
  width: 9cqw;
  height: 1px;
  margin-bottom: 2cqw;
  background: var(--edn-ink);
}

/* The spread's caption is set small in the margin rather than under the measure. */
.nci--edno1 .edn-cap--bleed {
  padding-right: calc(var(--edn-g) + 22cqw);
  font-size: 2.9cqw;
}

.nci--edno1.nci--lang-zh .edn-cap--bleed {
  font-size: 2.7cqw;
}

.nci--edno1 .edn-cap--tight {
  padding: 2.4cqw 0 0;
}

.nci--edno1 .edn-cap--tight .edn-cap-rule {
  width: 6cqw;
}

/* ───── the folio in the outer margin ─────
   A bound issue puts its page number on the outer edge, so these alternate: the first block's folio is
   out on the right, the next one's out on the left, and so on down the page. */

.nci--edno1 .edn-folio {
  position: absolute;
  top: 0;
  display: flex;
  align-items: center;
  gap: 1.8cqw;
  max-width: 62cqw;
  font-family: var(--edn-grot);
  font-size: 2.3cqw;
  font-weight: 500;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--edn-grey);
}

.nci--edno1 .edn-folio--recto {
  right: 3.4cqw;
  flex-direction: row-reverse;
}

.nci--edno1 .edn-folio--verso {
  left: 3.4cqw;
}

.nci--edno1 .edn-folio-n {
  font-size: 2.8cqw;
  font-weight: 700;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
  color: var(--edn-ink);
}

.nci--edno1 .edn-folio-rule {
  width: 4cqw;
  height: 1px;
  background: var(--edn-rule);
}

.nci--edno1 .edn-folio-t {
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ───── block heads ───── */

.nci--edno1 .edn-head {
  position: relative;
  padding: 13cqw var(--edn-g) 0;
}

.nci--edno1 .edn-head-rule {
  display: block;
  height: 1px;
  margin-bottom: 4.6cqw;
  background: var(--edn-ink);
}

.nci--edno1 .edn-kicker {
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.32em;
  text-indent: 0.32em;
  text-transform: uppercase;
  color: var(--edn-ink-2);
}

.nci--edno1 .edn-title {
  margin-top: 2.6cqw;
  font-family: var(--edn-disp);
  font-size: 8.4cqw;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -0.012em;
  color: var(--edn-ink);
}

.nci--edno1.nci--lang-zh .edn-title {
  font-size: 7.4cqw;
  line-height: 1.38;
  letter-spacing: 0.04em;
}

/* ───── shared text pieces ───── */

.nci--edno1 .edn-standfirst {
  padding: 5cqw var(--edn-g) 0;
  font-family: var(--edn-grot);
  font-size: 3.5cqw;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.005em;
  color: var(--edn-ink-2);
}

.nci--edno1.nci--lang-zh .edn-standfirst {
  font-size: 3.3cqw;
  line-height: 1.95;
  letter-spacing: 0.04em;
}

.nci--edno1 .edn-lede {
  padding: 5cqw var(--edn-g) 0;
  font-size: 3.1cqw;
  line-height: 1.95;
  letter-spacing: 0.005em;
  color: var(--edn-ink-2);
}

.nci--edno1.nci--lang-zh .edn-lede {
  font-size: 3.1cqw;
  letter-spacing: 0.05em;
}

.nci--edno1 .edn-foot {
  padding: 7cqw calc(var(--edn-g) + 1cqw) 0;
  font-family: var(--edn-cap);
  font-size: 3.3cqw;
  font-style: italic;
  line-height: 1.8;
  white-space: pre-line;
  color: var(--edn-grey);
}

.nci--edno1.nci--lang-zh .edn-foot {
  font-style: normal;
  font-size: 3.05cqw;
  line-height: 2;
  letter-spacing: 0.05em;
}

.nci--edno1 .edn-link {
  display: inline-block;
  padding-bottom: 1cqw;
  border-bottom: 1px solid var(--edn-ink);
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-indent: 0.24em;
  text-transform: uppercase;
  color: var(--edn-ink);
}

.nci--edno1 .edn-linkrow {
  padding: 8cqw var(--edn-g) 0;
}

/* ───── cover: the masthead ───── */

.nci--edno1 .edn-mast {
  padding: 6cqw 0 4.4cqw;
}

.nci--edno1 .edn-mast-name {
  padding: 0 var(--edn-g);
  font-family: var(--edn-disp);
  font-size: 12cqw;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.005em;
  text-transform: uppercase;
  color: var(--edn-ink);
}

.nci--edno1 .edn-mast-rule {
  display: block;
  height: 3px;
  margin: 3.4cqw var(--edn-g) 0;
  background: var(--edn-ink);
}

.nci--edno1 .edn-mast-line {
  display: flex;
  justify-content: space-between;
  gap: 4cqw;
  padding: 2.6cqw var(--edn-g) 0;
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 500;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--edn-ink-2);
}

/* Spot rule, use one of three. */
.nci--edno1 .edn-mast .edn-spot-rule {
  margin-top: 3.4cqw;
  margin-bottom: 5cqw;
}

/* The only type allowed on the cover photograph: a vertical line of small caps set in the empty white
   drape of the top-left corner. It is clear of the groom's shoulder, a long way from either face, and
   it needs no wash behind it because the drape is already white. */
.nci--edno1 .edn-cover-folio {
  position: absolute;
  top: 5cqw;
  left: 4.4cqw;
  writing-mode: vertical-rl;
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 600;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--edn-ink);
}

/* ───── cover: the front matter, set on paper under the plate ───── */

.nci--edno1 .edn-front {
  padding: 7cqw var(--edn-g) 0;
}

.nci--edno1 .edn-names {
  font-family: var(--edn-disp);
  font-size: 13cqw;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--edn-ink);
  overflow-wrap: anywhere;
}

.nci--edno1.nci--lang-zh .edn-names {
  font-size: 12cqw;
  line-height: 1.24;
  letter-spacing: 0.04em;
}

.nci--edno1 .edn-name {
  display: block;
}

.nci--edno1 .edn-amp {
  display: block;
  margin: 0.6cqw 0;
  font-size: 6cqw;
  font-style: italic;
  font-weight: 400;
  color: var(--edn-grey);
}

.nci--edno1 .edn-dateline {
  display: flex;
  align-items: center;
  gap: 3cqw;
  margin-top: 5cqw;
  font-family: var(--edn-grot);
  font-size: 2.7cqw;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--edn-ink-2);
}

.nci--edno1 .edn-dateline-d {
  font-variant-numeric: tabular-nums;
  color: var(--edn-ink);
}

.nci--edno1 .edn-dateline-rule {
  flex: 1;
  height: 1px;
  background: var(--edn-rule);
}

.nci--edno1 .edn-standfirst--cover {
  padding: 5cqw 4cqw 0 0;
}

/* ───── the contents page ─────
   Device one. The numbers are the running total of the blocks the doc prints, so a section switched off
   in the editor takes its line out here and repaginates everything below it. */

.nci--edno1 .edn-toc {
  margin: 10cqw var(--edn-g) 0;
  padding: 6cqw 5cqw 6.6cqw;
  background: var(--edn-paper-2);
}

.nci--edno1 .edn-toc-head {
  padding-bottom: 3.4cqw;
  border-bottom: 1px solid var(--edn-ink);
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 600;
  letter-spacing: 0.38em;
  text-indent: 0.38em;
  text-transform: uppercase;
  color: var(--edn-ink);
}

.nci--edno1 .edn-toc-row {
  display: flex;
  align-items: baseline;
  padding: 3.2cqw 0;
  border-bottom: 1px solid var(--edn-rule-2);
}

.nci--edno1 .edn-toc-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.nci--edno1 .edn-toc-t {
  font-family: var(--edn-disp);
  font-size: 4.2cqw;
  font-weight: 400;
  line-height: 1.35;
  color: var(--edn-ink);
}

.nci--edno1.nci--lang-zh .edn-toc-t {
  font-size: 3.9cqw;
  letter-spacing: 0.06em;
}

.nci--edno1 .edn-toc-dots {
  flex: 1;
  min-width: 4cqw;
  height: 0;
  margin: 0 2.4cqw;
  border-bottom: 1px dotted var(--edn-rule);
  transform: translateY(-0.28em);
}

.nci--edno1 .edn-toc-n {
  font-family: var(--edn-grot);
  font-size: 3.2cqw;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.06em;
  color: var(--edn-ink);
}

/* ───── the editor's letter: two columns and a pull quote across the gutter ───── */

.nci--edno1 .edn-cols {
  margin: 8cqw var(--edn-g) 0;
  columns: 2;
  column-gap: 5cqw;
  column-rule: 1px solid var(--edn-rule-2);
  /* Small enough that a justified 39cqw column still gets enough words per line to close up. */
  font-size: 2.7cqw;
  line-height: 1.85;
  letter-spacing: -0.005em;
  text-align: justify;
  hyphens: auto;
  color: var(--edn-ink-2);
}

.nci--edno1.nci--lang-zh .edn-cols {
  font-family: var(--edn-text);
  font-size: 2.9cqw;
  line-height: 2.05;
  letter-spacing: 0.02em;
  text-align: left;
  hyphens: none;
}

.nci--edno1 .edn-cols p {
  overflow-wrap: anywhere;
}

/* Device three: the quote runs the full measure while the text either side of it stays in two columns —
   the only place the display face is set in italic. */
.nci--edno1 .edn-pull {
  margin: 7cqw var(--edn-g) 7cqw;
  padding: 5.4cqw 2cqw 5.8cqw;
  border-top: 1px solid var(--edn-ink);
  border-bottom: 1px solid var(--edn-ink);
  font-family: var(--edn-disp);
  font-size: 6.6cqw;
  font-style: italic;
  font-weight: 400;
  line-height: 1.32;
  letter-spacing: -0.015em;
  text-align: center;
  color: var(--edn-ink);
}

.nci--edno1.nci--lang-zh .edn-pull {
  font-style: normal;
  font-size: 5.6cqw;
  line-height: 1.6;
  letter-spacing: 0.04em;
}

/* ───── contributors ───── */

.nci--edno1 .edn-contrib {
  margin: 12cqw var(--edn-g) 0;
  border-top: 2px solid var(--edn-ink);
}

.nci--edno1 .edn-contrib-head {
  padding: 3cqw 0 0;
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 600;
  letter-spacing: 0.34em;
  text-indent: 0.34em;
  text-transform: uppercase;
  color: var(--edn-ink-2);
}

.nci--edno1 .edn-contrib-row {
  padding: 5cqw 0;
  border-bottom: 1px solid var(--edn-rule-2);
}

.nci--edno1 .edn-contrib-row:first-of-type {
  border-top: 1px solid var(--edn-rule-2);
  margin-top: 4.4cqw;
}

.nci--edno1 .edn-contrib-role {
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--edn-grey);
}

.nci--edno1 .edn-contrib-name {
  margin-top: 1.6cqw;
  font-family: var(--edn-disp);
  font-size: 6cqw;
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--edn-ink);
  overflow-wrap: anywhere;
}

.nci--edno1.nci--lang-zh .edn-contrib-name {
  letter-spacing: 0.06em;
}

.nci--edno1 .edn-contrib-line {
  margin-top: 2cqw;
  font-size: 2.85cqw;
  line-height: 1.85;
  color: var(--edn-ink-2);
}

.nci--edno1.nci--lang-zh .edn-contrib-line {
  letter-spacing: 0.04em;
}

/* ───── the flat-plan ─────
   One page miniature per event; the row whose hour is the hour in content.dateISO is inked solid, the
   way the cover is inked on a real flat-plan. */

.nci--edno1 .edn-plan {
  margin: 9cqw var(--edn-g) 0;
  border-top: 1px solid var(--edn-ink);
}

.nci--edno1 .edn-plan-row {
  display: grid;
  grid-template-columns: 13cqw minmax(0, 1fr);
  align-items: start;
  gap: 4.4cqw;
  padding: 4.6cqw 0;
  border-bottom: 1px solid var(--edn-rule-2);
}

.nci--edno1 .edn-plan-row:last-child {
  border-bottom: 1px solid var(--edn-ink);
}

.nci--edno1 .edn-plan-page {
  position: relative;
  aspect-ratio: 3 / 4;
  border: 1px solid var(--edn-rule);
  background: var(--edn-paper);
}

.nci--edno1 .edn-plan-page i {
  position: absolute;
  left: 14%;
  height: 1px;
  background: var(--edn-rule);
}

.nci--edno1 .edn-plan-page i:nth-child(1) {
  top: 24%;
  width: 62%;
}

.nci--edno1 .edn-plan-page i:nth-child(2) {
  top: 38%;
  width: 72%;
}

.nci--edno1 .edn-plan-page i:nth-child(3) {
  top: 52%;
  width: 44%;
}

.nci--edno1 .edn-plan-fol {
  position: absolute;
  right: 12%;
  bottom: 8%;
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--edn-grey);
}

.nci--edno1 .edn-plan-row.is-inked .edn-plan-page {
  border-color: var(--edn-ink);
  background: var(--edn-ink);
}

.nci--edno1 .edn-plan-row.is-inked .edn-plan-page i {
  background: rgba(253, 252, 250, 0.42);
}

.nci--edno1 .edn-plan-row.is-inked .edn-plan-fol {
  color: var(--edn-paper);
}

.nci--edno1 .edn-plan-at {
  font-family: var(--edn-grot);
  font-size: 2.8cqw;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--edn-grey);
}

.nci--edno1 .edn-plan-row.is-inked .edn-plan-at {
  color: var(--edn-ink);
}

.nci--edno1 .edn-plan-t {
  margin-top: 1.4cqw;
  font-family: var(--edn-disp);
  font-size: 5cqw;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--edn-ink);
}

.nci--edno1.nci--lang-zh .edn-plan-t {
  font-size: 4.6cqw;
  letter-spacing: 0.04em;
}

.nci--edno1 .edn-plan-n {
  margin-top: 1.6cqw;
  font-family: var(--edn-cap);
  font-size: 3cqw;
  font-style: italic;
  line-height: 1.6;
  color: var(--edn-grey);
}

.nci--edno1.nci--lang-zh .edn-plan-n {
  font-style: normal;
  font-size: 2.8cqw;
  letter-spacing: 0.05em;
}

/* ───── the portfolio ───── */

.nci--edno1 .edn-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: start;
  gap: 4.4cqw;
  margin: 11cqw var(--edn-g) 0;
}

.nci--edno1 .edn-pair-cell {
  min-width: 0;
}

/* The second plate drops, so the pair reads as two pages of a spread rather than a row of two. */
.nci--edno1 .edn-pair-cell--low {
  margin-top: 12cqw;
}

/* ───── going to press ───── */

.nci--edno1 .edn-press {
  margin: 8cqw var(--edn-g) 0;
  border-top: 3px solid var(--edn-ink);
}

.nci--edno1 .edn-press-main {
  padding-top: 3cqw;
}

.nci--edno1 .edn-press-n {
  font-family: var(--edn-disp);
  font-size: 27cqw;
  font-weight: 700;
  font-variant-numeric: tabular-nums lining-nums;
  line-height: 0.92;
  letter-spacing: -0.04em;
  color: var(--edn-ink);
}

/* Spot rule, use two of three. */
.nci--edno1 .edn-spot-rule--press {
  width: 26cqw;
  margin: 3cqw 0 0;
}

.nci--edno1 .edn-press-l {
  margin-top: 2.6cqw;
  font-family: var(--edn-grot);
  font-size: 2.7cqw;
  font-weight: 600;
  letter-spacing: 0.34em;
  text-indent: 0.34em;
  text-transform: uppercase;
  color: var(--edn-ink-2);
}

.nci--edno1 .edn-press-rest {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 6cqw;
  border-top: 1px solid var(--edn-rule);
}

/* A row of publication data: every cell ranges left off its own rule, so the three figures line up. */
.nci--edno1 .edn-press-cell {
  padding: 3.4cqw 0 0.4cqw 3.4cqw;
  border-left: 1px solid var(--edn-rule-2);
  text-align: left;
}

.nci--edno1 .edn-press-cell:first-child {
  padding-left: 0;
  border-left: none;
}

.nci--edno1 .edn-press-v {
  display: block;
  font-family: var(--edn-grot);
  font-size: 6.4cqw;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  letter-spacing: 0.01em;
  color: var(--edn-ink);
}

.nci--edno1 .edn-press-u {
  display: block;
  margin-top: 1.6cqw;
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 500;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--edn-grey);
}

.nci--edno1 .edn-press-done {
  margin: 8cqw var(--edn-g) 0;
  padding: 6cqw 0;
  border-top: 3px solid var(--edn-ink);
  border-bottom: 1px solid var(--edn-ink);
  font-family: var(--edn-disp);
  font-size: 7cqw;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--edn-ink);
}

.nci--edno1 .edn-issueline {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 2.6cqw;
  margin-top: 5.4cqw;
  padding: 0 var(--edn-g);
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--edn-ink-2);
}

.nci--edno1 .edn-issueline i {
  flex: 1;
  min-width: 4cqw;
  height: 1px;
  background: var(--edn-rule-2);
}

.nci--edno1 .edn-issueline-sub {
  width: 100%;
  letter-spacing: 0.14em;
  color: var(--edn-grey);
}

/* ───── the listings ───── */

.nci--edno1 .edn-list {
  margin: 9cqw var(--edn-g) 0;
  border-top: 1px solid var(--edn-ink);
}

.nci--edno1 .edn-list-row {
  display: grid;
  grid-template-columns: 22cqw minmax(0, 1fr);
  gap: 3cqw;
  padding: 3.8cqw 0;
  border-bottom: 1px solid var(--edn-rule-2);
}

.nci--edno1.nci--lang-en .edn-list-row {
  grid-template-columns: 26cqw minmax(0, 1fr);
}

.nci--edno1 .edn-list-k {
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 600;
  line-height: 1.9;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--edn-grey);
}

.nci--edno1 .edn-list-v {
  font-size: 3cqw;
  line-height: 1.8;
  color: var(--edn-ink);
}

.nci--edno1.nci--lang-zh .edn-list-v {
  letter-spacing: 0.04em;
}

.nci--edno1 .edn-mapwrap {
  margin: 8cqw var(--edn-g) 0;
  overflow: hidden;
  border: 1px solid var(--edn-ink);
}

/* The map printed as the issue prints everything else: greys, one black road, a black pin. */
.nci--edno1 .nci-map {
  height: 34cqw;
  background:
    linear-gradient(115deg, rgba(18, 16, 14, 0.07) 0 22%, transparent 22.4%),
    radial-gradient(26cqw 14cqw at 78% 24%, rgba(18, 16, 14, 0.08) 0%, transparent 70%),
    radial-gradient(20cqw 11cqw at 16% 78%, rgba(18, 16, 14, 0.07) 0%, transparent 72%),
    var(--edn-paper-2);
}

.nci--edno1 .nci-map-road {
  top: 56%;
  height: 2.6cqw;
  border-top: 1px solid var(--edn-rule);
  border-bottom: 1px solid var(--edn-rule);
  background: var(--edn-paper);
}

.nci--edno1 .nci-map-pin {
  top: 45%;
  left: 47%;
  width: 3.4cqw;
  height: 3.4cqw;
  background: var(--edn-ink);
  box-shadow: 0 0 0 1.6cqw rgba(18, 16, 14, 0.1);
}

.nci--edno1 .edn-maps {
  display: flex;
  gap: 7cqw;
  padding: 5.4cqw var(--edn-g) 0;
}

/* ───── the small print ───── */

.nci--edno1 .edn-small {
  margin: 8cqw var(--edn-g) 0;
}

.nci--edno1 .edn-small-item {
  display: grid;
  grid-template-columns: 8cqw minmax(0, 1fr);
  gap: 3cqw;
  padding: 4.4cqw 0;
  border-top: 1px solid var(--edn-rule-2);
}

.nci--edno1 .edn-small-item:last-child {
  border-bottom: 1px solid var(--edn-rule-2);
}

.nci--edno1 .edn-small-n {
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 700;
  line-height: 2;
  font-variant-numeric: tabular-nums;
  color: var(--edn-grey);
}

.nci--edno1 .edn-small-q {
  font-family: var(--edn-disp);
  font-size: 4.2cqw;
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: -0.005em;
  color: var(--edn-ink);
}

.nci--edno1.nci--lang-zh .edn-small-q {
  font-size: 4cqw;
  letter-spacing: 0.04em;
}

.nci--edno1 .edn-small-a {
  margin-top: 1.6cqw;
  font-size: 2.85cqw;
  line-height: 1.85;
  color: var(--edn-ink-2);
}

.nci--edno1.nci--lang-zh .edn-small-a {
  letter-spacing: 0.04em;
}

/* ───── the subscription card ─────
   A card bound into the back of the issue: a dotted tear edge down its left side, a heavy rule across
   its head, an empty box where the stamp goes, and the fields boxed the way a printed form boxes them. */

.nci--edno1 .edn-card {
  position: relative;
  margin: 9cqw var(--edn-g) 0;
  padding-left: 5.4cqw;
  background: var(--edn-paper-2);
}

.nci--edno1 .edn-card-tear {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 5.4cqw;
  width: 0;
  border-left: 1px dashed var(--edn-rule);
}

.nci--edno1 .edn-card-body {
  padding: 0 4.4cqw 5.4cqw;
}

.nci--edno1 .edn-card-rule {
  display: block;
  height: 3px;
  margin: 0 -4.4cqw;
  background: var(--edn-ink);
}

/* Spot rule, use three of three. */
.nci--edno1 .edn-spot-rule--card {
  margin: 1.4cqw -4.4cqw 0;
}

.nci--edno1 .edn-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 4cqw;
  padding: 4.6cqw 0 4.6cqw;
}

.nci--edno1 .edn-card-kicker {
  max-width: 34cqw;
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--edn-ink-2);
}

.nci--edno1 .edn-stamp {
  flex: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.6cqw;
  width: 17cqw;
  height: 21cqw;
  border: 1px solid var(--edn-rule);
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-align: center;
  text-transform: uppercase;
  color: var(--edn-grey);
}

/* The boxed fields are their own grid so the form's ruling stops where the fields stop: the submit bar
   is a sibling of the grid rather than a cell in it, and no hairline runs down beside it. */
.nci--edno1 .edn-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--edn-ink);
  border-left: 1px solid var(--edn-rule);
}

.nci--edno1 .edn-box {
  min-width: 0;
  padding: 2.6cqw 3cqw 2.4cqw;
  border-right: 1px solid var(--edn-rule);
  border-bottom: 1px solid var(--edn-rule);
}

.nci--edno1 .edn-box--wide {
  grid-column: 1 / -1;
}

.nci--edno1 .edn-box.is-bad {
  box-shadow: inset 0 0 0 1px var(--edn-ink);
}

.nci--edno1 .edn-box-l {
  display: block;
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--edn-grey);
}

.nci--edno1 .edn-box-i {
  width: 100%;
  margin-top: 0.8cqw;
  padding: 0 0 0.6cqw;
  border: none;
  border-bottom: 1px solid var(--edn-rule);
  background: transparent;
  font-family: var(--edn-disp);
  font-size: 3.8cqw;
  line-height: 1.5;
  color: var(--edn-ink);
  outline: none;
}

.nci--edno1 .edn-box-i:focus {
  border-bottom-color: var(--edn-ink);
  background: rgba(18, 16, 14, 0.04);
}

.nci--edno1 .edn-err {
  margin-top: 1.6cqw;
  font-family: var(--edn-grot);
  font-size: max(12px, 2.6cqw);
  font-weight: 500;
  letter-spacing: 0.04em;
  /* An error reads as one, not as the page's accent colour. */
  color: #a3271f;
}

.nci--edno1 .edn-ticks {
  display: flex;
  flex-direction: column;
  gap: 2cqw;
  margin-top: 2.6cqw;
}

.nci--edno1 .edn-tick {
  display: flex;
  align-items: center;
  gap: 2.2cqw;
  padding: 0;
  border: none;
  background: none;
  font-family: var(--edn-grot);
  font-size: 2.7cqw;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.14em;
  text-align: left;
  text-transform: uppercase;
  color: var(--edn-grey);
}

/* A printed form's box: empty, then inked when it is ticked. */
.nci--edno1 .edn-tick-box {
  flex: none;
  width: 3.6cqw;
  height: 3.6cqw;
  border: 1px solid var(--edn-ink);
  background: transparent;
  transition: background-color 120ms;
}

.nci--edno1 .edn-tick[aria-pressed='true'] {
  color: var(--edn-ink);
}

.nci--edno1 .edn-tick[aria-pressed='true'] .edn-tick-box {
  background: var(--edn-ink);
}

.nci--edno1 .edn-tick:disabled {
  opacity: 0.55;
}

.nci--edno1 .edn-step {
  display: flex;
  align-items: center;
  gap: 3cqw;
  margin-top: 2.6cqw;
}

.nci--edno1 .edn-step button {
  width: 6.4cqw;
  height: 6.4cqw;
  padding: 0;
  border: 1px solid var(--edn-ink);
  border-radius: 0;
  background: transparent;
  font-family: var(--edn-grot);
  font-size: 3.2cqw;
  line-height: 1;
  color: var(--edn-ink);
}

.nci--edno1 .edn-step button:disabled {
  opacity: 0.3;
}

.nci--edno1 .edn-step span {
  font-family: var(--edn-disp);
  font-size: 5.2cqw;
  font-weight: 700;
  font-variant-numeric: tabular-nums lining-nums;
  color: var(--edn-ink);
}

.nci--edno1 .edn-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 1.8cqw;
  margin-top: 2.6cqw;
}

.nci--edno1 .edn-tag {
  padding: 1.6cqw 3cqw;
  border: 1px solid var(--edn-rule);
  border-radius: 0;
  background: transparent;
  font-family: var(--edn-grot);
  font-size: 2.8cqw;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--edn-ink-2);
}

.nci--edno1 .edn-tag[aria-pressed='true'] {
  border-color: var(--edn-ink);
  background: var(--edn-ink);
  color: var(--edn-paper);
}

.nci--edno1 .edn-tag:disabled {
  opacity: 0.4;
}

.nci--edno1 .edn-submit {
  display: block;
  width: 100%;
  margin-top: 5cqw;
  padding: 4.2cqw 0;
  border: none;
  border-radius: 0;
  background: var(--edn-ink);
  font-family: var(--edn-grot);
  font-size: 2.7cqw;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  text-transform: uppercase;
  color: var(--edn-paper);
}

.nci--edno1 .edn-submit:disabled {
  opacity: 0.45;
}

.nci--edno1 .edn-done {
  padding: 2cqw 0 1cqw;
}

.nci--edno1 .edn-done-t {
  font-family: var(--edn-disp);
  font-size: 6.4cqw;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: -0.015em;
  color: var(--edn-ink);
}

.nci--edno1.nci--lang-zh .edn-done-t {
  font-size: 5.8cqw;
  letter-spacing: 0.04em;
}

.nci--edno1 .edn-done-b {
  margin-top: 2.6cqw;
  font-size: 2.9cqw;
  line-height: 1.9;
  color: var(--edn-ink-2);
}

.nci--edno1.nci--lang-zh .edn-done-b {
  letter-spacing: 0.04em;
}

.nci--edno1 .edn-req {
  margin-left: 0.4em;
  color: var(--edn-spot);
}

.nci--edno1 .edn-err--server {
  margin-top: 4cqw;
}

.nci--edno1 .edn-submit[aria-busy='true'],
.nci--edno1 .edn-wish-post[aria-busy='true'] {
  opacity: 0.7;
  cursor: progress;
}

.nci--edno1 .edn-done-when {
  margin-top: 1.6cqw;
  font-family: var(--edn-grot);
  font-size: 2.5cqw;
  letter-spacing: 0.04em;
  color: var(--edn-grey);
}

.nci--edno1 .edn-done-edit {
  margin-top: 5cqw;
  padding: 0 0 1cqw;
  border: none;
  border-bottom: 1px solid var(--edn-ink);
  background: none;
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-indent: 0.24em;
  text-transform: uppercase;
  color: var(--edn-ink);
}

.nci--edno1 .edn-detach {
  padding: 2.6cqw var(--edn-g) 0;
  font-family: var(--edn-grot);
  font-size: 2.2cqw;
  font-weight: 500;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--edn-grey);
}

/* ───── letters to the editor ───── */

.nci--edno1 .edn-wishform {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3cqw 3.4cqw;
  margin: 8cqw var(--edn-g) 0;
}

.nci--edno1 .edn-wish-in {
  grid-column: 1 / -1;
  width: 100%;
  padding: 2.4cqw 0;
  border: none;
  border-bottom: 1px solid var(--edn-rule);
  border-radius: 0;
  background: transparent;
  font-family: var(--edn-text);
  font-size: 3cqw;
  line-height: 1.6;
  color: var(--edn-ink);
  outline: none;
}

.nci--edno1 .edn-wish-in--name {
  grid-column: 1;
}

.nci--edno1 .edn-wish-in::placeholder {
  color: var(--edn-grey);
}

.nci--edno1 .edn-wish-in:focus {
  border-bottom-color: var(--edn-ink);
}

.nci--edno1 .edn-wish-err {
  grid-column: 1 / -1;
  margin-top: 0;
}

.nci--edno1 .edn-wish-post {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  padding: 2.2cqw 4.6cqw;
  border: 1px solid var(--edn-ink);
  border-radius: 0;
  background: transparent;
  font-family: var(--edn-grot);
  font-size: 2.8cqw;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-indent: 0.22em;
  text-transform: uppercase;
  color: var(--edn-ink);
}

.nci--edno1 .edn-wish-post:disabled {
  opacity: 0.4;
}

.nci--edno1 .edn-letters {
  margin: 8cqw var(--edn-g) 0;
  border-top: 1px solid var(--edn-ink);
}

.nci--edno1 .edn-letter {
  padding: 4.6cqw 0;
  border-bottom: 1px solid var(--edn-rule-2);
}

/* A letters page sets its notes with a hanging indent and the name under a short rule. */
.nci--edno1 .edn-letter-text {
  padding-left: 5cqw;
  text-indent: -5cqw;
  font-size: 2.9cqw;
  line-height: 1.9;
  color: var(--edn-ink);
  overflow-wrap: anywhere;
}

.nci--edno1.nci--lang-zh .edn-letter-text {
  letter-spacing: 0.04em;
}

.nci--edno1 .edn-letter-from {
  display: flex;
  align-items: center;
  gap: 2.2cqw;
  margin-top: 2.2cqw;
  padding-left: 5cqw;
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--edn-grey);
}

.nci--edno1 .edn-letter-from i {
  width: 5cqw;
  height: 1px;
  background: var(--edn-ink);
}

/* Before the first letter arrives the page does not hold the height a column of letters would take:
   the line sits close under the rule and the closing spread follows it. */
.nci--edno1 .edn-letters--empty {
  margin-top: 6cqw;
}

.nci--edno1 .edn-letters--empty + .edn-bleed--close {
  margin-top: 9cqw;
}

.nci--edno1 .edn-letters-empty {
  padding: 3.2cqw 0 0;
  font-family: var(--edn-cap);
  font-size: 3.2cqw;
  font-style: italic;
  color: var(--edn-grey);
}

.nci--edno1.nci--lang-zh .edn-letters-empty {
  font-style: normal;
  font-size: 3cqw;
  letter-spacing: 0.05em;
}

/* ───── colophon ───── */

.nci--edno1 .edn-colophon-line {
  padding: 8cqw calc(var(--edn-g) + 2cqw) 0 var(--edn-g);
  font-family: var(--edn-disp);
  font-size: 5.2cqw;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: -0.01em;
  color: var(--edn-ink);
}

.nci--edno1.nci--lang-zh .edn-colophon-line {
  font-size: 4.8cqw;
  line-height: 1.75;
  letter-spacing: 0.04em;
}

.nci--edno1 .edn-colophon {
  margin: 9cqw var(--edn-g) 0;
}

.nci--edno1 .edn-colophon-rule {
  display: block;
  height: 1px;
  margin-bottom: 3.4cqw;
  background: var(--edn-ink);
}

.nci--edno1 .edn-colophon-mark {
  font-family: var(--edn-grot);
  font-size: 2.3cqw;
  font-weight: 600;
  letter-spacing: 0.38em;
  text-transform: uppercase;
  color: var(--edn-grey);
}

/* ───── Guest cover overlay ─────
   The same first screen as the page itself: masthead on paper, the photograph carrying nothing but the
   vertical issue line in its empty corner, then the names on paper below. */

.nci-cover--edno1 {
  container-type: inline-size;
  display: block;
  padding: 0;
  overflow: hidden;
  background: var(--edn-paper);
  color: var(--edn-ink);
  text-align: left;
  font-family: var(--edn-text);
}

.nci-cover--edno1 .edn-cv-mast {
  padding: 6cqw var(--edn-g) 4.4cqw;
}

.nci-cover--edno1 .edn-cv-mast-name {
  font-family: var(--edn-disp);
  font-size: 11cqw;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.005em;
  text-transform: uppercase;
}

.nci-cover--edno1 .edn-cv-mast-rule {
  display: block;
  height: 3px;
  margin-top: 2.8cqw;
  background: var(--edn-ink);
}

.nci-cover--edno1 .edn-cv-mast-line {
  display: flex;
  justify-content: space-between;
  gap: 4cqw;
  margin-top: 2.2cqw;
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 500;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--edn-ink-2);
}

.nci-cover--edno1 .edn-cv-photo {
  position: relative;
  height: 44%;
  overflow: hidden;
  background: var(--edn-paper-2);
}

.nci-cover--edno1 .edn-cv-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0%;
  filter: var(--edn-cover-film, grayscale(1) contrast(1.04));
}

.nci-cover--edno1 .edn-cv-folio {
  position: absolute;
  top: 5cqw;
  left: 4.4cqw;
  writing-mode: vertical-rl;
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 600;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--edn-ink);
}

.nci-cover--edno1 .edn-cv-body {
  padding: 6cqw var(--edn-g) 0;
}

.nci-cover--edno1 .edn-cv-names {
  font-family: var(--edn-disp);
  font-size: 12cqw;
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -0.02em;
  overflow-wrap: anywhere;
}

.nci-cover--edno1 .edn-cv-names span {
  display: block;
}

.nci-cover--edno1 .edn-cv-names i {
  display: block;
  margin: 0.4cqw 0;
  font-size: 5.4cqw;
  font-style: italic;
  color: var(--edn-grey);
}

.nci-cover--edno1 .edn-cv-date {
  margin-top: 4cqw;
  font-family: var(--edn-grot);
  font-size: 2.7cqw;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  color: var(--edn-ink-2);
}

/* The way in is a rule that draws itself across the measure: the page being ruled up before it prints. */
.nci-cover--edno1 .edn-cv-open {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3cqw;
  width: 54cqw;
  margin-top: 7cqw;
  padding: 0;
  border: none;
  background: none;
}

.nci-cover--edno1 .edn-cv-rule {
  display: block;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, var(--edn-spot) 0 34%, var(--edn-ink) 34% 100%);
  transform-origin: left center;
  transform: scaleX(0.62);
  transition: transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.nci-cover--edno1 .edn-cv-open:hover .edn-cv-rule {
  transform: scaleX(1);
}

.nci-cover--edno1 .edn-cv-open-t {
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  font-weight: 600;
  letter-spacing: 0.28em;
  text-indent: 0.28em;
  text-transform: uppercase;
  color: var(--edn-ink);
}

.nci-cover--edno1 .edn-cv-open:focus-visible {
  outline: 2px solid var(--edn-spot);
  outline-offset: 6px;
}

.nci-cover--edno1 .edn-cv-hint {
  margin-top: 4cqw;
  font-family: var(--edn-grot);
  font-size: 2.6cqw;
  letter-spacing: 0.14em;
  color: var(--edn-grey);
}

.nci-cover--edno1.edn-cv--opening {
  animation: edn-open 520ms cubic-bezier(0.2, 0.7, 0.2, 1) forwards;
}

.nci-cover--edno1.edn-cv--opening .edn-cv-rule {
  animation: edn-rule 520ms cubic-bezier(0.2, 0.7, 0.2, 1) forwards;
}

@keyframes edn-open {
  to {
    opacity: 0;
    transform: translateY(-2%);
  }
}

@keyframes edn-rule {
  to {
    transform: scaleX(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .nci-cover--edno1.edn-cv--opening,
  .nci-cover--edno1.edn-cv--opening .edn-cv-rule {
    animation: none;
  }

  .nci-cover--edno1 .edn-cv-rule {
    transition: none;
    transform: scaleX(1);
  }

  .nci--edno1 .edn-tick-box {
    transition: none;
  }
}

/* ───── Floating bar — two words at the foot of the outer margin ─────
   It was centred, and centred is where the names are: it parked on the given name at the cover's
   resting position. It sits in the foot of the outer margin now, as every other page in the family
   puts it. Square corners, hairline boxes, words rather than icons: the only two buttons on the page
   that are not part of the reply card. */

.nci-float--edno1 {
  left: auto;
  right: 14px;
  bottom: 16px;
  justify-content: flex-end;
  gap: 6px;
}

.nci-float--edno1 button {
  padding: 10px 14px;
  border-radius: 0;
  font-family: var(--edn-grot);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-indent: 0.24em;
  box-shadow: 0 3px 14px rgba(18, 16, 14, 0.14);
}

.nci-float--edno1 .nci-float-music {
  border: 1px solid var(--edn-ink);
  background: rgba(253, 252, 250, 0.95);
  color: var(--edn-ink);
}

.nci-float--edno1 .nci-float-dot {
  width: 7px;
  height: 7px;
  border-radius: 0;
  background: var(--edn-grey);
}

.nci-float--edno1 .nci-float-music[aria-pressed='true'] .nci-float-dot {
  background: var(--edn-spot);
}

.nci-float--edno1 .nci-float-share {
  border: 1px solid var(--edn-ink);
  background: var(--edn-ink);
  color: var(--edn-paper);
}
