/* css/pages/misc.css : 404.html and privacy.html (award round, 2026-09-28/29; change-plan 3.11, 3.12). Linked after
   site.css; unlayered.
   404 "The door" (the page's ink moment, contrast rhythm 2026-09-28): a night porch. A tall arched opening in a porcelain
   architrave on a satin-silver sill, over a polished dark floor that gives back a clean reflection. The leaf is an
   ink-lacquer six-panel door drawn in CSS (an arched raised panel in the head, six raised, bevelled panels below, a
   lacquer gloss, a satin-silver long-plate lever), hinged on the right. It swings open a crack on arrival; on a mouse
   it opens wide while any link or button is hovered or focused, and on a touch screen it opens wide by itself a moment
   after the crack (misc.js adds .is-wide). Behind it is the house: a lit hallway (a frosted globe near the door, a
   glowing arched doorway at the far end, the light pooling on the floor; a warm WHITE light, never amber: no gold,
   bronze or copper anywhere) whose light spills across the floor toward the words. The door turns a few degrees toward
   the pointer. T0 and no-JS: drawn ajar, still.
   Contrast rhythm (2026-09-30, feedback #32): the porch, then the other doors on bone (five small arched doors that
   light from inside on hover or focus), then the shared text-me ending on ink, kept compact here (spacing only), then
   the footer. Two ink moments with bone between.
   Privacy: typographic only. A compact title card, the four "short version" lines rising with an ink hairline drawn
   under each, and a sticky contents rail (>= 1100px) that tracks the section you're reading. */

.notfound, .privacypage { --warm: #FFE8D2; --lamp: 255, 240, 224; --silver: #C7CBD2; --silver-deep: #8F949D; }

/* ------------------------------------------------------------------ 404: the page's ink moment, a night porch */
/* The door and the text-me ending already carry the contact lines; skip the footer's duplicate contact block. */
.notfound .footer__contact { display: none; }
@property --open { syntax: "<number>"; inherits: true; initial-value: 0; }
.notfound main { display: flex; flex-direction: column; }
.nf { position: relative; flex: 1 0 auto; min-height: min(calc(100svh - var(--header-h)), 680px); display: grid; align-items: center; overflow: clip; --open: .42;
  background: #121110; color: var(--ink); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .nf { background: #080807; --paper: #080807; --paper-2: #141312; } }
:root[data-theme="dark"] .nf { background: #080807; --paper: #080807; --paper-2: #141312; }
/* the lamplight on the porch: a warm-white pool round the door (LIGHT, never a tint of gold) that grows as it opens */
.nf::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: calc(.4 + var(--open) * .6);
  background: radial-gradient(30% 56% at 74% 46%, rgba(var(--lamp), .11), rgba(var(--lamp), .03) 55%, transparent 76%); }
.nf__grid { position: relative; z-index: 1; display: grid; gap: clamp(40px, 6vw, 96px); align-items: center; padding-block: clamp(40px, 7svh, 96px); }
@media (min-width: 900px) { .nf__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 4fr); } }
.nf__copy { position: relative; display: grid; gap: clamp(16px, 2.2vw, 24px); justify-items: start; max-width: 600px; }
.nf__eyebrow { color: var(--muted); }
.nf__h1 { font-weight: 300; font-size: clamp(3rem, 9vw, 7.25rem); line-height: .9; letter-spacing: -.06em; color: var(--ink); }
.nf__h1 em { font-family: var(--serif); font-style: italic; font-weight: 400; color: var(--blue-text); letter-spacing: -.015em; display: inline-block; line-height: .9; padding: 0 .1em .12em .02em; margin: 0 -.1em -.12em 0; }
.nf__lede { max-width: 30ch; font-family: var(--serif); font-style: italic; font-size: clamp(1.5rem, 2.5vw, 2.125rem); line-height: 1.25; color: var(--ink); }
.nf__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.nf__ctas .btn--primary { min-height: 50px; }

/* ------------------------------------------------------------------ 404: the other doors (bone, between the two ink moments) */
.nf-doors { background: var(--paper); color: var(--ink); padding: clamp(60px, 10vh, 104px) 0 clamp(64px, 10vh, 108px); }
.nf-doors__inner { display: grid; justify-items: center; gap: clamp(18px, 3vh, 28px); }
.nf-doors__k { margin: 0; color: var(--muted); }
.nf-doors__list { list-style: none; margin: 0; padding: 0; width: min(100%, 760px); display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.nf-doors__door { display: grid; justify-items: center; align-content: start; gap: 12px; min-height: 44px; padding: 6px 0; text-decoration: none; color: var(--ink); }
/* a small arched opening in the wall: a hairline arch, a darker threshold, and warm-white light from inside on hover */
.nf-doors__door i { position: relative; width: clamp(40px, 7vw, 64px); aspect-ratio: 5 / 7; border: 1px solid var(--line-strong); border-radius: 999px 999px 2px 2px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--ink) 4%, transparent), color-mix(in srgb, var(--ink) 11%, transparent));
  transition: transform .5s var(--ease-out), box-shadow .6s var(--ease-out), background .6s var(--ease-out), border-color .4s var(--ease-out); }
.nf-doors__door i::after { content: ""; position: absolute; left: 18%; right: 18%; bottom: -1px; height: 1px; background: var(--line-strong); opacity: .6; }
.nf-doors__door span { font-size: 11px; font-weight: 500; letter-spacing: .16em; line-height: 1.35; text-transform: uppercase; text-align: center;
  background: linear-gradient(var(--blue-fill), var(--blue-fill)) 50% 100% / 0 1px no-repeat; padding-bottom: 4px; transition: background-size .4s var(--ease-out), color .3s; }
.nf-doors__door:hover i, .nf-doors__door:focus-visible i { transform: translateY(-4px); border-color: var(--ink);
  background: radial-gradient(90% 70% at 50% 72%, rgba(255, 244, 230, .95), rgba(255, 232, 206, .5) 55%, color-mix(in srgb, var(--ink) 6%, transparent));
  box-shadow: 0 14px 26px -14px rgba(18, 17, 16, .45), 0 0 22px 2px rgba(255, 236, 214, .5); }
.nf-doors__door:hover span, .nf-doors__door:focus-visible span { background-size: 100% 1px; }
.nf-doors__door:focus-visible { outline: none; }
.nf-doors__door:focus-visible span { outline: 2px solid var(--ring, #2852E5); outline-offset: 4px; border-radius: 2px; }
@media (prefers-reduced-motion: reduce) { .nf-doors__door i, .nf-doors__door span { transition: none; } .nf-doors__door:hover i, .nf-doors__door:focus-visible i { transform: none; } }
@media (max-width: 419px) { .nf-doors__door span { font-size: 10px; letter-spacing: .1em; } }
/* the text-me ending on this short page: the same component, compact (spacing only), so the page stays about two and a
   half screens and the ink stays two moments */
.notfound .textme { min-height: 0; padding: clamp(60px, 9vh, 100px) 0 clamp(56px, 8vh, 88px); }
@media (max-width: 767px) { .notfound .textme { padding: 52px 0 44px; } }

/* the door: a tall arched opening (a semicircular head) in a porcelain architrave (.nf__portal::before, concentric with
   the arch, modelled by the light, ringed by a satin-silver hairline) on a satin-silver sill, over a polished dark floor
   that mirrors it. misc.js turns the whole door a few degrees toward the pointer (--tilt-x / --tilt-y). */
.nf__door { position: relative; justify-self: center; width: min(100%, 300px); perspective: 1400px; container-type: inline-size; }
/* the polished floor: a soft sheen of lamplight on dark stone from the sill forward */
.nf__door::before { content: ""; position: absolute; left: -80%; right: -60%; top: calc(100% + 18px); height: 40%; pointer-events: none; opacity: calc(.5 + var(--open) * .5);
  background: radial-gradient(46% 92% at 50% 0%, rgba(var(--lamp), .09), rgba(var(--lamp), .025) 50%, transparent 72%); }
.nf__portal { position: relative; transform: rotateY(calc(var(--tilt-x, 0) * 7deg)) rotateX(calc(var(--tilt-y, 0) * -2.5deg)); transition: transform 1.1s var(--ease-out); }
/* the floor's reflection: the same door, flipped under the sill, short, a touch soft, fading away from the sill and toward
   both sides, so it reads as polished stone giving back light */
.nf__mirror { position: absolute; left: -17px; right: -17px; top: calc(100% + 21px); height: 26%; overflow: hidden; pointer-events: none; opacity: .42; filter: blur(1.2px) brightness(.8);
  -webkit-mask-image: linear-gradient(to bottom, #000, rgba(0, 0, 0, .3) 45%, transparent 90%), linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(to bottom, #000, rgba(0, 0, 0, .3) 45%, transparent 90%), linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent);
  mask-composite: intersect; }
.nf__mirror .nf__frame { margin: 0 17px; transform: scaleY(-1); box-shadow: 0 0 0 1px rgba(255, 255, 255, .5), 0 0 0 13px #CCCBCA, 0 0 0 14px var(--silver); }
.nf__frame { position: relative; aspect-ratio: 300 / 580; overflow: hidden; perspective: 640px; perspective-origin: 100% 50%;
  border-radius: 50% 50% 1px 1px / 25.86% 25.86% 1px 1px; background: #151311;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .55), 0 0 0 2px rgba(40, 36, 32, .22), inset 0 0 0 1px rgba(0, 0, 0, .3); }
/* the architrave: a porcelain moulding round the arch and down to the sill, concentric with the opening, modelled by the
   porch light (bright at the upper left, a soft shade toward the lower right, a crisp arris at its outer edge) and ringed
   by a satin-silver hairline; the house's lamplight glows round it and it throws a long soft shadow on the ink */
.nf__portal::before { content: ""; position: absolute; z-index: -1; left: -14px; right: -14px; top: -14px; bottom: -14px; pointer-events: none;
  border-radius: 50% 50% 1px 1px / calc(50cqw + 14px) calc(50cqw + 14px) 1px 1px;
  background: radial-gradient(120% 70% at 22% 10%, #FBFBFA, rgba(251, 251, 250, 0) 60%), linear-gradient(152deg, #EFEEED 0%, #DBDAD9 42%, #C7C6C5 80%, #B5B4B3 100%);
  box-shadow: inset 1px 1px 0 rgba(255, 255, 255, .9), inset -1px -1px 0 rgba(40, 36, 32, .25), inset -6px -8px 14px -6px rgba(40, 36, 32, .22),
    0 0 0 1px var(--silver), 0 0 0 2px rgba(0, 0, 0, .45),
    0 0 90px 16px rgba(var(--lamp), calc(.04 + var(--open) * .1)), 0 50px 90px -40px rgba(0, 0, 0, .9); }

/* the house behind the door: a lit hallway. The globe's light falls on the near walls and ceiling; the hall runs back to
   an arched doorway at the far end, glowing warm white, and its light pools down the floor toward you. */
.nf__room { position: absolute; inset: 0; overflow: hidden; pointer-events: none;
  background:
    radial-gradient(circle at 21% 24%, rgba(255, 246, 236, .3) 0 4cqw, rgba(255, 236, 218, .13) 18cqw, rgba(255, 236, 218, .04) 40cqw, transparent 60cqw),
    radial-gradient(64% 50% at 37% 54%, #5C534B 0%, #3C3631 30%, #25211E 62%, #161412 100%); }
/* the far doorway: a smaller arch at the end of the hall, lit from within */
.nf__far { position: absolute; left: 27%; top: 36%; width: 21%; height: 42%; border-radius: 50% 50% 1px 1px / 25% 25% 1px 1px;
  background: linear-gradient(#FFF8F0, #F7ECE0 65%, #EDE0D2);
  box-shadow: 0 0 0 .7cqw rgba(0, 0, 0, .28), 0 0 7cqw 1.5cqw rgba(255, 236, 218, .3), 0 0 22cqw 6cqw rgba(255, 236, 218, .1); }
/* the hall's floor, in perspective from the far doorway's sill to the threshold, with the far light pooling down it */
.nf__hall { position: absolute; inset: 0; clip-path: polygon(27% 78%, 48% 78%, 100% 100%, 0% 100%);
  background: radial-gradient(22% 60% at 37.5% 78%, rgba(255, 244, 232, .34), rgba(255, 236, 218, .08) 60%, transparent), linear-gradient(#2A2622, #171513 70%, #100F0E); }
/* the frosted globe near the door, on a satin hairline: it hangs in the gap the door opens first (so it shows at the
   crack), and its glow blooms as the door opens */
.nf__globe { position: absolute; left: 21%; top: 24%; width: 8.5cqw; height: 8.5cqw; border-radius: 50%; transform: translate(-50%, -50%); pointer-events: none;
  background: radial-gradient(circle at 48% 42%, #FFFFFF, #FFF6EC 46%, #EDE3D7 100%);
  box-shadow: 0 0 2cqw rgba(255, 255, 255, .85), 0 0 calc(4cqw + var(--open) * 20cqw) calc(1.5cqw + var(--open) * 8cqw) rgba(var(--lamp), calc(.28 + var(--open) * .3)),
    0 0 calc(20cqw + var(--open) * 36cqw) calc(var(--open) * 10cqw) rgba(var(--lamp), calc(var(--open) * .13)); }
.nf__globe::before { content: ""; position: absolute; left: calc(50% - .5px); bottom: 96%; width: 1px; height: 40cqw; background: linear-gradient(transparent, rgba(199, 203, 210, .85) 30%); }

/* the leaf: ink lacquer, hinged on the right and opening inward, so the gap of light shows on the left, toward the links.
   A soft lacquer gloss runs across it and the porch light brushes its head; it darkens as it turns away. */
.nf__leaf { position: absolute; inset: 0; transform-origin: 100% 50%; transform-style: preserve-3d; transform: rotateY(calc(var(--open) * -62deg));
  background:
    linear-gradient(112deg, transparent 20%, rgba(255, 255, 255, .06) 33%, rgba(255, 255, 255, .015) 41%, transparent 50%),
    radial-gradient(110% 55% at 22% 6%, rgba(var(--lamp), .09), transparent 62%),
    linear-gradient(90deg, #1C1E23, #121317 48%, #17191E);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .045), -14px 0 30px -8px rgba(0, 0, 0, calc(var(--open) * .6)); }
/* the leaf's own edge on the swinging side: lacquer, with a satin line catching the lamp */
.nf__leaf::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 8px; background: linear-gradient(90deg, #2B2E35, #15171B 55%, #0E0F12); box-shadow: inset 1px 0 0 rgba(233, 236, 240, .45); transform-origin: 0 50%; transform: rotateY(-90deg); }
/* the panels: each a sunk field with a bevel (lit on its upper-left edges, shaded on the lower-right), and a raised
   field inside it; the head's panel follows the arch */
.nf__panel { position: absolute; border-radius: 2px;
  background: linear-gradient(165deg, #23262D, #121418 55%, #191B20);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .62), inset 1.5px 1.5px 0 rgba(255, 255, 255, .075), inset -1.5px -1.5px 0 rgba(0, 0, 0, .45), 0 1px 0 rgba(255, 255, 255, .045); }
.nf__panel::before { content: ""; position: absolute; inset: 3.3cqw; border-radius: inherit;
  background: linear-gradient(160deg, #272A31, #15171B 58%, #1B1D22);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, .5), -1px -1px 0 rgba(255, 255, 255, .07), 1px 1.5px 2px rgba(0, 0, 0, .6); }
.nf__panel--arch { left: 13%; right: 13%; top: 6.6%; height: 21%; border-radius: 50% 50% 2px 2px / 88% 88% 2px 2px; }
.nf__panel--a1, .nf__panel--a2 { top: 31.5%; height: 12%; }
.nf__panel--b1, .nf__panel--b2 { top: 47.5%; height: 24%; }
.nf__panel--c1, .nf__panel--c2 { top: 75.5%; height: 18%; }
.nf__panel--a1, .nf__panel--b1, .nf__panel--c1 { left: 13%; width: 33.5%; }
.nf__panel--a2, .nf__panel--b2, .nf__panel--c2 { right: 13%; width: 33.5%; }
/* the hardware: a satin-silver long plate on the latch stile, a round rose and a lever reaching toward the hinge */
.nf__lever { position: absolute; left: 5.2%; top: 58%; width: 3.4cqw; height: 21cqw; transform: translateY(-50%); border-radius: 1.7cqw;
  background: linear-gradient(90deg, #7C818A, #E6E9ED 38%, #C7CBD2 62%, #7A7F88);
  box-shadow: 0 1px 2px rgba(0, 0, 0, .65), 0 0 0 .4px rgba(255, 255, 255, .3); }
.nf__lever::before { content: ""; position: absolute; left: 50%; top: 30%; width: 12.5cqw; height: 2.1cqw; margin-top: -1.05cqw; border-radius: 1.1cqw;
  background: linear-gradient(#F5F7F9, #CDD1D6 50%, #8F949D); box-shadow: 0 1.5px 2px rgba(0, 0, 0, .6); }
.nf__lever::after { content: ""; position: absolute; left: 50%; top: 30%; width: 4.4cqw; height: 4.4cqw; margin: -2.2cqw 0 0 -2.2cqw; border-radius: 50%;
  background: radial-gradient(circle at 36% 30%, #FFFFFF, #D3D7DC 48%, #8F949D); box-shadow: 0 1px 2px rgba(0, 0, 0, .6); }
/* the leaf darkens as it turns away from the porch light */
.nf__shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(0, 0, 0, .55), rgba(0, 0, 0, .14) 70%); opacity: var(--open); }
/* the threshold: a satin-silver sill under the door, its bright top edge the floor's horizon line */
.nf__portal::after { content: ""; position: absolute; left: -17px; right: -17px; top: calc(100% + 16px); height: 5px; pointer-events: none;
  background: linear-gradient(#FFFFFF, #D5D9DE 30%, var(--silver) 55%, #6E737B);
  box-shadow: 0 1px 0 rgba(0, 0, 0, .6), 0 12px 20px -10px rgba(0, 0, 0, .8), -40px -1px 34px -16px rgba(var(--lamp), calc(var(--open) * .7)); }
/* the gap's light, raking across the floor toward the links */
.nf__floor { position: absolute; left: -36%; right: 56%; top: calc(100% + 21px); height: 16%; pointer-events: none; opacity: var(--open); transform-origin: 100% 0; transform: skewX(-58deg) scaleX(calc(.55 + var(--open) * .6));
  background: linear-gradient(to left, rgba(255, 250, 244, .42), rgba(var(--lamp), .16) 40%, rgba(var(--lamp), 0) 92%); filter: blur(10px); }

/* JS arms the door closed, then it swings open a crack; any link or button in play opens it wide (a slow, eased reveal) */
.nf.is-armed { --open: 0; }
.nf.is-armed.is-crack { --open: .42; transition: --open 2.4s cubic-bezier(.3, .7, .2, 1); }
.nf.is-armed.is-crack:has(.nf__copy a:hover, .nf__copy a:focus-visible) { --open: 1; transition-duration: 1.5s; transition-timing-function: cubic-bezier(.22, .8, .2, 1); }
/* touch screens have no hover: the door opens wide by itself a moment after the crack (misc.js), the globe blooms and the
   light runs out across the floor */
.nf.is-armed.is-crack.is-wide { --open: .9; transition-duration: 2.6s; transition-timing-function: cubic-bezier(.3, .7, .2, 1); }
@media (prefers-reduced-motion: reduce) { .nf, .nf.is-armed, .nf.is-armed.is-crack { --open: .42; transition: none; } }
:root[data-motion="paused"] .nf, :root[data-motion="paused"] .nf.is-armed { --open: .42; transition: none; }

/* Desktop: one calm screen for the porch (404 budget: about 2 screens with the footer). */
@media (min-width: 900px) {
  .nf { min-height: min(calc(100svh - var(--header-h)), 480px); }
  .nf__grid { padding-block: clamp(28px, 4svh, 44px) clamp(76px, 9svh, 96px); }
  .nf__copy { gap: clamp(14px, 1.6vw, 20px); }
  .nf__door { width: min(100%, 200px); }
}
@media (max-width: 899px) {
  .nf { align-items: start; }
  .nf__grid { padding-top: 34px; padding-bottom: 40px; gap: 52px; } /* the architrave stands 14px proud of the arch: room under the header */
  .nf__door { order: -1; width: min(34vw, 142px); justify-self: center; margin-right: 10vw; }
  .nf__mirror { height: 22%; }
}

/* ------------------------------------------------------------------ privacy */
.pv-hero .caps { color: var(--fg-2); } /* ink-2 on the bone card, bone-2 on the night card */
.pv-hero.title-card--night { min-height: min(54vh, 560px); } /* the page's first ink moment: tall enough to read as one */
.pv-hero .title-card__title { font-size: clamp(3rem, 8vw, 7rem); }
.pv-hero .title-card__sub { text-transform: none; letter-spacing: .02em; font-size: clamp(1rem, 1.4vw, 1.1875rem); font-weight: 400; }
.pv { padding-block: clamp(40px, 6vw, 80px) var(--section-y); }
.pv__grid { display: grid; gap: 32px; }
.pv__toc { display: none; }
@media (min-width: 1100px) {
  .pv__grid { grid-template-columns: 250px minmax(0, 1fr); gap: clamp(48px, 7vw, 120px); align-items: start; }
  .pv__toc { position: sticky; top: calc(var(--header-h) + 32px); display: block; padding-left: 18px; }
  .pv__toc-title { font-size: 11.5px; font-weight: 500; letter-spacing: .28em; text-transform: uppercase; color: var(--fg-2); margin-bottom: 12px; }
  .pv__toc ol { list-style: none; margin: 0; padding: 0; display: grid; }
  .pv__toc a { position: relative; display: flex; align-items: center; min-height: 40px; font-size: .9375rem; color: var(--fg-muted); text-decoration: none; transition: color var(--dur-2), transform var(--dur-3) var(--ease-out); }
  .pv__toc a:hover, .pv__toc a[aria-current="true"] { color: var(--fg); }
  .pv__toc a[aria-current="true"] { transform: translateX(4px); }
  .pv__toc a::before { content: ""; position: absolute; left: -18px; top: 50%; width: 7px; height: 7px; margin-top: -3.5px; margin-left: -3px; border-radius: 50%; background: var(--blue-fill); transform: scale(0); transition: transform var(--dur-3) var(--ease-out); }
  .pv__toc a[aria-current="true"]::before { transform: scale(1); }
  .pv__rail { position: absolute; left: 0; top: 30px; bottom: 0; width: 1px; background: var(--rule); }
  .pv__rail i { position: absolute; left: 0; top: 0; width: 1px; height: 100%; background: var(--blue-fill); transform-origin: top; transform: scaleY(var(--pv, 0)); }
}
.pv__body { max-width: 68ch; }
.pv__sec { scroll-margin-top: calc(var(--header-h) + 24px); padding-block: clamp(28px, 4vw, 44px); border-top: 1px solid var(--rule); }
.pv__sec:first-child { border-top: 1px solid var(--ink); padding-top: clamp(28px, 4vw, 44px); }
.pv__sec h2 { font-weight: 300; font-size: clamp(1.875rem, 3.4vw, 2.75rem); line-height: 1; letter-spacing: -.045em; margin-bottom: 18px; }
.pv__sec p, .pv__sec li { font-size: var(--fs-body-guide); line-height: 1.65; color: var(--fg-2); }
.pv__sec p + p { margin-top: 14px; }
.pv__sec ul:not([role]) { margin: 16px 0 0; padding-left: 1.2em; display: grid; gap: 8px; }
.pv__sec strong { color: var(--fg); font-weight: 600; }
/* the short version: four lines, each rising, an ink hairline drawn under it */
.pv-short { list-style: none; margin: 0; padding: 0; display: grid; }
.pv-short li { position: relative; padding: 18px 0 20px; }
.pv-short li::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--ink); opacity: .55; transform-origin: 0 50%; transform: scaleX(1); }
.pv-short.is-armed li::after { transform: scaleX(0); transition: transform 1.1s var(--ease-out); transition-delay: calc(.15s + var(--i, 0) * .14s); }
.pv-short.is-armed.is-in li::after { transform: scaleX(1); }
.pv-short p { font-size: clamp(1.375rem, 2.3vw, 1.875rem); line-height: 1.25; letter-spacing: -.02em; color: var(--fg-2); text-wrap: pretty; }
.pv-short strong { font-weight: 500; color: var(--fg); }
.pv__contact { list-style: none; margin: 16px 0 18px; padding: 0; display: grid; gap: 6px; }
.pv__contact li { font-size: 1.125rem; color: var(--fg); }
