:root {
  --bg: #190f1a;
  --bg-2: #261c27;
  --card: #2c222d;
  --card-2: #372d38;
  --ink: #eee6f0;
  --ink-2: #c3bbc5;
  --ink-3: #a199a3;
  --line: #483e49;
  --line-2: #847a85;
  --brand: #d942f0;
  --brand-2: #b4db70;
  --violet: #b4db70;
  --blue: #b4db70;
  --glass: #1f1520;
  --on-brand: #000000;
  --grad: linear-gradient(#d942f0, #d942f0);
  --grad-soft: transparent;
  --violet-soft: transparent;
  --green: #b4db70;
  --gold: #b4db70;
  --danger: #b4db70;
  --ok-bg: transparent;
  --ok-ink: #d942f0;
  --err-bg: transparent;
  --err-ink: #b4db70;
  --sh-1: none;
  --sh-2: none;
  --sh-3: 0 18px 50px rgba(0, 0, 0, .4);
  --sh-brand: none;
  --font: "Cabin", system-ui, sans-serif;
  --head: "Teko", Georgia, serif;
  --side-w: 0px;
  --rail-w: 0px;
  --tab-h: 58px;
  --panel-w: 330px;
  --bar-h: 0px;
  color-scheme: dark;
  --tex: repeating-linear-gradient(0deg, color-mix(in srgb, var(--ink) 4%, transparent) 0 1px, transparent 1px 5px);
  --tex-size: auto;
  --sp: 26px;
  --sec: 76px;
  --lh: 1.68;
  --r-sm: 0px;
  --r: 0px;
  --r-lg: 0px;
  --r-xl: 0px;
  --bw: 1px;
  --bs: solid;
}
/* f13: the card-catalogue cabinet. Paper is --card, the cabinet is --bg/--bg-2, the red header line of an index card is --brand-2,
   the label ink is --ink. Logical properties only; no letter-spacing or case change on running text (Arabic, CJK). */
:root { --hl: color-mix(in srgb, var(--brand) 60%, var(--ink)); --rule: color-mix(in srgb, var(--ink) 13%, transparent); --mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace; --pad: calc(var(--sp) * 2); }
body { font-weight: 400; line-height: var(--lh); background-color: var(--bg); background-image: var(--tex); background-size: var(--tex-size); color: var(--ink); }
h1, h2, h3, h4 { font-family: var(--head); font-weight: 700; line-height: 1.16; }
a { text-underline-offset: 3px; }
.badge-ai { background: var(--card); color: var(--ink); border: 1px solid var(--line-2); border-radius: var(--r-sm); font-size: 10px; font-weight: 700; padding: 0 5px; backdrop-filter: none; box-shadow: none; line-height: 1.5; }

/* the rod hole every card has at its foot */
.xmkxq5tl { position: absolute; inset-block-end: 9px; inset-inline: 0; margin-inline: auto; width: 15px; height: 15px; border-radius: 50%; background: var(--bg); border: 1px solid var(--line-2); box-shadow: inset 0 2px 3px rgba(0, 0, 0, .3); pointer-events: none; }

/* the frame */
.xmklecxh { min-height: 100dvh; display: flex; flex-direction: column; }
.main, .has-rail .main { margin: 0; padding: var(--pad); min-height: 0; flex: 1 0 auto; width: 100%; max-width: none; }
.has-rail .rail, .side, .topbar, .rail { display: none; }
.xmkp5qh3 { width: 100%; max-width: 1400px; margin-inline: auto; padding: var(--sp) var(--pad); display: flex; align-items: center; justify-content: space-between; gap: 10px 24px; flex-wrap: wrap; }
.xmkeqtwq { display: flex; align-items: center; gap: 12px; padding: 7px 10px; padding-inline: 10px 18px; background: var(--card); color: var(--ink); border: var(--bw) var(--bs) var(--line-2); border-radius: var(--r-sm); box-shadow: inset 0 0 0 3px var(--card), inset 0 0 0 4px var(--line); min-width: 0; }
.xmk64xoc { flex: none; display: grid; place-items: center; width: 38px; height: 38px; background: var(--brand); color: var(--on-brand); border-radius: var(--r-sm); }
.xmkylfkv { display: flex; flex-direction: column; min-width: 0; }
.xmkyta53 { font: 700 22px/1.1 var(--head); overflow-wrap: anywhere; }
.xmk2fnrs { font-size: 12.5px; color: var(--ink-2); overflow-wrap: anywhere; }
.xmkhlo4n { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; font-size: 14px; }
.xmkhlo4n a { min-height: 36px; display: inline-flex; align-items: center; padding-inline: 12px; border-radius: var(--r-sm); color: var(--ink-2); }
.xmkhlo4n a:hover { background: var(--bg-2); color: var(--ink); }
.xmkhlo4n a.xmkgtbc4 { background: var(--brand); color: var(--on-brand); font-weight: 700; }
.xmk5gf7m { width: 100%; max-width: 1400px; margin-inline: auto; padding-inline: var(--pad); flex: 1 0 auto; display: flex; align-items: flex-start; gap: 0; min-width: 0; }
.xmklxdh2 { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; min-height: 66dvh; background: var(--card); border: var(--bw) var(--bs) var(--line-2); border-radius: var(--r-lg); position: relative; }
.xmktufl5 { padding: var(--sp) var(--pad); border-block-start: 1px dashed var(--line-2); font-size: 13px; color: var(--ink-2); }
.xmktufl5 a { text-decoration: underline; }
.xmktufl5 nav { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-block-start: 8px; }
.xmktufl5 nav a { min-height: 30px; display: inline-flex; align-items: center; }
.tabbar.xmkflu5f { background: var(--bg-2); backdrop-filter: none; -webkit-backdrop-filter: none; border-block-start: var(--bw) var(--bs) var(--line-2); gap: 3px; padding-inline: 6px; padding-block-start: 6px; }
.xmkflu5f .tab { font-size: 11.5px; color: var(--ink-2); gap: 2px; min-width: 0; border: var(--bw) var(--bs) transparent; border-block-end: 0; border-start-start-radius: var(--r); border-start-end-radius: var(--r); }
.xmkflu5f .tab span:not(.dot) { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding-inline: 2px; }
.xmkflu5f .tab.active { color: var(--ink); background: var(--card); border-color: var(--line-2); box-shadow: inset 0 3px 0 var(--brand); }

/* controls over the engine's */
.btn { font-weight: 700; white-space: normal; height: auto; min-height: 44px; padding-block: 8px; text-align: center; border-radius: var(--r-sm); }
.btn-sm { min-height: 34px; padding-block: 4px; }
.btn-lg { min-height: 50px; }
.btn-primary, .btn-primary:hover { background: var(--brand); color: var(--on-brand); box-shadow: inset 0 -3px 0 rgba(0, 0, 0, .22); }
.btn-primary:hover { filter: brightness(1.08); }
.btn-outline, .btn-outline:hover { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1px var(--line-2); }
.btn-ghost { color: var(--ink); }
.chip { background: var(--bg-2); box-shadow: inset 0 0 0 1px var(--line-2); font-weight: 500; border-radius: var(--r-sm); color: var(--ink); }
.chip.on { background: var(--brand); color: var(--on-brand); box-shadow: none; }
.input, .select, .textarea { background: var(--card-2); box-shadow: inset 0 0 0 1px var(--line-2); border-radius: var(--r-sm); color: var(--ink); }
.input:focus, .select:focus, .textarea:focus { box-shadow: inset 0 0 0 2px var(--brand); }
.card { background: var(--card); border: var(--bw) var(--bs) var(--line-2); border-radius: var(--r); }
.section { margin-block-start: var(--sec); }
.xmkrqu6f { color: var(--hl); text-decoration: underline; font-weight: 700; min-height: 44px; display: inline-flex; align-items: center; }
.xmkchtwy { font-size: clamp(28px, 3.6vw, 42px); margin-block-end: 8px; }
.xmkvanbp { font-size: 24px; margin-block-end: var(--sp); display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.xmksvpfu { font-size: 17px; max-width: 70ch; margin-block-end: var(--sp); color: var(--ink-2); }
.xmkcci42, .xmk5goc2, .xmkbyefk, .xmkohv4c, .xmklir4n, .xmklztm6, .xmkblje3, .xmka4t2o { font-family: var(--mono); }

/* index cards: one look for a person, whichever card option is chosen */
.xmkms6y5 { position: relative; display: flex; flex-direction: column; min-width: 0; background: var(--card); color: var(--ink); border: var(--bw) var(--bs) var(--line-2); border-radius: var(--r); overflow: hidden; }
.xmkms6y5:hover { border-color: var(--hl); }
.xmk2xsxq { position: relative; display: block; overflow: hidden; background: var(--bg-2); }
.xmk2xsxq img { display: block; width: 100%; height: auto; aspect-ratio: 640 / 784; object-fit: cover; object-position: 50% 20%; }
.xmkbwbu2 { position: absolute; inset-block-start: 8px; inset-inline-start: 8px; background: var(--card); }
.xmkz6hit { position: absolute; inset-block-start: 11px; inset-inline-end: 10px; }
.xmknzjg3 { font: 700 17px/1.2 var(--head); overflow-wrap: anywhere; }
.xmkqrt6g { font-size: 13.5px; color: var(--ink-2); overflow-wrap: anywhere; }
.xmkohv4c { font-size: 11.5px; color: var(--ink-2); }
.xmkyzcwm { font-size: 13.5px; color: var(--ink-2); overflow-wrap: anywhere; }
.xmkx2tk6 { font-size: 13px; font-weight: 700; color: var(--hl); text-decoration: underline; }
.grid { gap: var(--sp); grid-template-columns: repeat(auto-fill, minmax(min(212px, 100%), 1fr)); }
.xmk7tup7 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: min(var(--sp), 14px); }
.xmk7tup7 .xmkyzcwm, .xmk7tup7 .xmkx2tk6, .xmk7tup7 .xmkohv4c { display: none; }
.xmk7tup7 .xmknzjg3 { font-size: 16px; }
.xmklpvbw { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0 16px; margin-block-end: 8px; }
.xmklpvbw .xmkrlfgq { margin: 0; }
.xmk4pfln { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.on-dot { display: inline-block; vertical-align: middle; }

/* the front page */
.xmkigavq > section, .xmkigavq > nav { margin-block-end: var(--sec); }
.xmkigavq > .xmkjjgvo { margin-block-end: calc(var(--sec) * .8); }
.xmkjjgvo h1 { font-size: clamp(28px, 4vw, 48px); line-height: 1.08; overflow-wrap: anywhere; }
.xmk5goc2 { font-size: 12.5px; color: var(--ink-2); margin-block-end: 6px; overflow-wrap: anywhere; }
.xmkzrgzb { font-size: 18px; color: var(--ink-2); max-width: 62ch; }
.xmkiswl4 { display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: center; margin-block-start: var(--sp); }
.xmkfm6ho { margin: 0; padding: 0; list-style: none; }
.xmkfm6ho dt, .xmkfm6ho b { font: 700 28px/1.1 var(--head); color: var(--hl); }
.xmkfm6ho dd { margin: 2px 0 0; font-size: 13px; color: var(--ink-2); }
/* the home banner is the engine's (section.hw); this is its dress. On a wide photo the engine's scrim and white text stand */
.xmkjjgvo .hw { margin-block: var(--sp); border: var(--bw) var(--bs) var(--line-2); box-shadow: none; text-align: start; border-radius: var(--r); }
.xmkjjgvo .hw-name { font-family: var(--head); font-weight: 700; }
.xmkjjgvo .hw-text { text-shadow: 0 1px 3px rgba(0, 0, 0, .6), 0 0 18px rgba(0, 0, 0, .4); }
.xmkjjgvo .hw-text .btn { text-shadow: none; }
.hw .hw-ghost, .hw .hw-ghost:hover { color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .6); }
.hw .hw-ghost:hover { background: rgba(255, 255, 255, .12); }
.hw-nav .stage-arrow, .hw-nav .stage-arrow:hover { color: #fff; }
.hw-nav .stage-dots button { background: rgba(255, 255, 255, .55); }
.hw-nav .stage-dots button.on { background: #fff; }
@media (min-width: 901px) { .xmkjjgvo .hw { height: clamp(300px, 27vw, 380px); } }

/* sections */
.xmkwdiag { margin-block-end: var(--sp); }
.xmkrg4ne h2 { font-size: clamp(24px, 2.7vw, 32px); }
.xmkrlfgq { display: inline-block; font-size: 12.5px; color: var(--ink); background: var(--bg-2); border: 1px solid var(--line-2); border-radius: var(--r-sm); padding: 1px 8px; margin-block-end: 6px; overflow-wrap: anywhere; }
.xmkbyefk { font-size: 13px; color: var(--hl); font-weight: 700; margin-block-end: 2px; }
.xmkne4up { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: var(--sp); margin-block-start: var(--sp); }
.xmknzwyc { position: relative; padding: calc(var(--sp) * .9) var(--sp) 30px; background: var(--card); background-image: repeating-linear-gradient(to bottom, transparent 0 27px, var(--rule) 27px 28px); border: 1px solid var(--line-2); border-block-start: 3px solid var(--brand-2); border-radius: var(--r-sm); }
.xmkne4up h3, .xmkbz6zc h3 { font-size: 19px; margin-block-end: 6px; }
.xmkne4up p, .xmkbz6zc p { margin-block-end: 8px; }
.xmk72eyb { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(250px, 100%), 1fr)); gap: var(--sp); }
.xmkr6czt { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 12px 14px; background: var(--card); border: 1px solid var(--line-2); border-block-start: 3px solid var(--brand-2); border-radius: var(--r-sm); color: var(--ink); min-width: 0; }
.xmkr6czt[hidden] { display: none; }
.xmkr6czt:hover { border-color: var(--hl); border-block-start-color: var(--brand-2); }
.xmklir4n { font-size: 11.5px; color: var(--ink-2); padding-block-end: 4px; border-block-end: 1px solid var(--line); }
.xmk7aw7n { display: block; background-image: repeating-linear-gradient(to bottom, transparent 0 25px, var(--rule) 25px 26px); }
.xmk7upml { display: block; font: 400 16px/26px var(--head); }
.xmkpkuan { display: flex; justify-content: space-between; gap: 8px; margin-block-start: auto; padding-block-start: 6px; font-size: 13px; color: var(--ink-2); }
.xmkpkuan b { color: var(--hl); }
.xmkuewr6 .xmkr6czt { background: var(--bg-2); }
.xmkbz6zc { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: var(--sp); }
.xmkbz6zc ul { list-style: none; margin: 0; padding: 0; }
.xmkbz6zc li a { min-height: 30px; display: inline-flex; align-items: center; text-decoration: underline; }
.xmkpvhd5 { width: 100%; border-collapse: collapse; }
.xmkpvhd5 td { padding: 8px 10px; border-block-end: 1px solid var(--line); text-align: start; vertical-align: top; }
.xmkpvhd5 tr:first-child td { font-weight: 700; color: var(--ink); border-block-end: var(--bw) var(--bs) var(--line-2); background: var(--bg-2); }
.xmkpvhd5 td:first-child { color: var(--ink-2); }
.xmk6gb6a { position: relative; padding: calc(var(--sp) * 1.6) var(--sp) calc(var(--sp) * 2.2); background: var(--card-2); border: 1px solid var(--line-2); border-block-start: 4px solid var(--brand-2); border-radius: var(--r-sm); text-align: center; }
.xmkp4ob2 { max-width: 62ch; margin-inline: auto; }
.xmk6gb6a h2 { font-size: clamp(25px, 3vw, 34px); margin-block-end: 8px; }
.xmk6gb6a p:not(.xmkrlfgq) { margin-block-end: var(--sp); }
.xmkn56xl h2 { font-size: 20px; margin-block-end: 6px; }
.xmkn56xl ul { list-style: none; padding: 0; margin: 0; columns: 3; column-gap: var(--sp); }
.xmkn56xl li { break-inside: avoid; }
.xmkn56xl a { min-height: 34px; display: inline-flex; align-items: center; text-decoration: underline; }

/* lists */
.xmkjfvjy { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px 24px; margin-block-end: var(--sp); }
.xmkjfvjy > div { flex: 1 1 320px; min-width: 0; }
.xmkjfvjy p { color: var(--ink-2); max-width: 66ch; }
.search.xmk7m2s3 { background: var(--card-2); box-shadow: inset 0 0 0 1px var(--line-2); border-radius: var(--r-sm); min-width: 240px; }
.xmktotpy { display: grid; gap: 6px; padding: 10px 14px; margin-block-end: var(--sp); background: var(--bg-2); border: 1px solid var(--line-2); border-radius: var(--r-sm); }
.xmktotpy .frow { display: flex; align-items: center; gap: 10px; min-width: 0; }
.xmktotpy .frow-label { flex: none; width: 76px; font-size: 13px; color: var(--ink-2); }
.xmktotpy .chips-scroll, .xmkffyh2 .chips-scroll { min-width: 0; }
.xmkgjzny summary { cursor: pointer; font-size: 13.5px; color: var(--hl); min-height: 30px; display: list-item; }
.xmkgjzny .frow { margin-block-start: 6px; }
.xmkig24t a { font-size: 13.5px; text-decoration: underline; color: var(--hl); }
.xmkon4pv { text-align: center; padding: 30px; border: 1px dashed var(--line-2); border-radius: var(--r); }
.xmkon4pv p { margin-block: 8px 14px; color: var(--ink-2); }
.xmkfxpau { margin-block-start: var(--sec); padding-block-start: var(--sp); border-block-start: 4px double var(--line-2); scroll-margin-block-start: 12px; }
.xmkffyh2 { display: grid; gap: 6px; margin-block-end: var(--sp); }

/* her page */
.xmktc3f7 { display: inline-flex; align-items: center; min-height: 34px; font-size: 14px; text-decoration: underline; color: var(--hl); }
.xmk4b35m { display: grid; grid-template-columns: minmax(min(calc(50vw + 26px), 74%), 3fr) minmax(0, 2fr); gap: calc(var(--sp) * 2); margin-block: 8px var(--sec); align-items: start; }
.xmkrk2p2 { position: relative; padding: 12px 12px 36px; background: var(--card-2); border: 1px solid var(--line-2); border-block-start: 4px solid var(--brand-2); border-radius: var(--r-sm); }
.xmkcca7w { position: relative; }
.xmkcca7w img { display: block; width: 100%; height: auto; aspect-ratio: 640 / 784; object-fit: cover; border-radius: var(--r-sm); background: var(--bg-2); }
.xmkcca7w .badge-ai { position: absolute; inset-block-start: 8px; inset-inline-start: 8px; }
.xmkffgm2 { margin-block-start: 12px; grid-template-columns: 82px minmax(0, 1fr); font-size: 13.5px; background-image: repeating-linear-gradient(to bottom, transparent 0 26px, var(--rule) 26px 27px); }
.xmkffgm2 dd { overflow-wrap: anywhere; font-weight: 400; }
.xmkvizt7 h1 { font-size: clamp(28px, 3.6vw, 42px); }
.xmkvizt7 h1 small { display: block; font-size: .5em; font-weight: 400; color: var(--ink-2); margin-block-start: 4px; }
.xmkniqr7 { font-size: 13.5px; color: var(--ink-2); margin-block-end: 6px; }
.xmkphyzk { font: 400 20px/1.32 var(--head); margin-block: 10px 8px; }
.xmkzjt7e { display: flex; flex-wrap: wrap; gap: 10px; margin-block: var(--sp) 10px; }
.xmk5pmvd { font-size: 12.5px; color: var(--ink-3); }
.xmk7kbqb { margin-block-start: var(--sec); }
.xmkyfzku { display: inline-block; font-size: 15px; padding: 4px 14px; margin-block-end: 0; background: var(--bg-2); border: 1px solid var(--line-2); border-block-end: 0; border-start-start-radius: var(--r-sm); border-start-end-radius: var(--r-sm); position: relative; z-index: 1; }
.xmk7kbqb .xmkyfzku { margin-block-end: var(--sp); border-block-end: 1px solid var(--line-2); border-radius: var(--r-sm); }
.xmk6ahec { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(var(--sp) * 1.4); margin-block-start: var(--sec); align-items: start; }
.xmktmay7 { padding: 0 0 var(--sp); }
.xmktmay7 > .xmkyfzku ~ .xmkyfzku { margin-block-start: var(--sp); }
.xmktmay7 > ul, .xmktmay7 > p { background-color: var(--card-2); background-image: repeating-linear-gradient(to bottom, transparent 0 27px, var(--rule) 27px 28px); border: 1px solid var(--line-2); border-radius: var(--r-sm); border-start-start-radius: 0; margin: 0; padding: 10px 14px; padding-inline: 32px 14px; line-height: 28px; }
.xmktmay7 > p { padding-inline: 14px; }
.xmktmay7 li { overflow-wrap: anywhere; }
.xmkq7npc { margin-block-start: var(--sec); padding-block-start: var(--sp); border-block-start: 4px double var(--line-2); }
.xmkq7npc .xmkyfzku { margin-block-end: var(--sp); border-block-end: 1px solid var(--line-2); border-radius: var(--r-sm); }
.xmkq7npc ul { list-style: none; padding: 0; margin: 0; columns: 3; column-gap: var(--sp); }
.xmkq7npc li { break-inside: avoid; margin-block-end: 8px; font-size: 14px; }
.xmkq7npc b { display: block; font-family: var(--head); }

/* static pages: a long card */
.xmkblqll { max-width: 780px; margin-inline: auto; padding: var(--pad); background: var(--card-2); border: 1px solid var(--line-2); border-block-start: 4px solid var(--brand-2); border-radius: var(--r-sm); }
.xmklhids { font: 400 20px/1.36 var(--head); color: var(--ink-2); margin-block: 10px var(--sp); }
.xmkblqll h2 { font-size: 22px; margin-block: calc(var(--sp) * 1.4) 8px; padding-block-end: 4px; border-block-end: 1px solid var(--line-2); }
.xmkblqll p, .xmkblqll li { margin-block-end: 8px; }
.xmkblqll ul { padding-inline-start: 20px; margin: 0; }
.xmkblqll a { text-decoration: underline; color: var(--hl); }
.xmklztm6 { font-size: 13px; color: var(--ink-2); }
.xmkti4na { padding-block-end: var(--sp); border-block-end: 1px dashed var(--line-2); }

/* chat: the engine's page, under the frame. The page never scrolls; the sheet fills what the plate and the tabs leave. */
.chat-page .xmktufl5 { display: none; }
.chat-page .xmklecxh { height: 100dvh; min-height: 0; }
.chat-page .xmkp5qh3 { padding-block: 8px; }
.chat-page .xmk2fnrs { display: none; }
.chat-page .xmk5gf7m { min-height: 0; padding-block-end: 12px; }
.chat-page .xmklxdh2 { min-height: 0; align-self: stretch; overflow: hidden; }
.chat-page .main { height: auto; padding: 0; display: flex; flex-direction: column; min-height: 0; flex: 1; }
.chat-page .chat-shell { flex: 1; min-height: 0; height: auto; border: 0; border-radius: 0; background: var(--card); grid-template-columns: 280px minmax(0, 1fr); }
.chat-list { border-inline-end: 1px solid var(--line-2); background: var(--bg-2); }
.chat-list-head h2 { font-size: 22px; }
.chat-search { border-radius: var(--r-sm); background: var(--card-2); box-shadow: inset 0 0 0 1px var(--line); }
.conv { border-radius: 0; border-block-end: 1px dashed var(--line-2); }
.conv.active { background: var(--card); color: var(--ink); box-shadow: inset 4px 0 0 var(--brand-2); }
.conv.active .last, .conv.active .time, .conv.active .you { color: var(--ink-2); }
.conv:hover { background: var(--card-2); }
.conv b { font-family: var(--head); }
.av img { border-radius: var(--r-sm); }
.thread, .quick, .quota, .composer { background: var(--card); background-color: var(--card); }
.thread-head { border-block-end: 1px solid var(--line-2); border-block-start: 3px solid var(--brand-2); background: var(--card); }
.thread-head .grow > div:first-child { font-family: var(--head); font-size: 18px; }
.thread-head .status { font-weight: 400; color: var(--ink-2); }
.thread-head .status.online { color: var(--hl); }
.bubble, .msg.her .bubble, .msg.me .bubble { border-radius: var(--r-sm); font-size: 16px; }
.msg.her .bubble { background: var(--card-2); color: var(--ink); border: 1px solid var(--line-2); border-block-start: 3px solid var(--brand-2); font-family: var(--head); }
.msg.me .bubble { background: var(--bg-2); color: var(--ink); border: 1px dashed var(--line-2); }
.msg .t { color: var(--ink-3); font-weight: 400; }
.typing span, .typing i { background: var(--brand); }
.composer { border-block-start: 1px solid var(--line-2); }
.cfield { background: var(--card-2); box-shadow: inset 0 0 0 1px var(--line-2); border-radius: var(--r-sm); }
.composer textarea { background: transparent; color: var(--ink); }
.composer .send { border-radius: var(--r-sm); background: var(--brand); color: var(--on-brand); box-shadow: none; }
.mode-btn { border-radius: var(--r-sm); }
.menu, .ctx-menu { border-radius: var(--r-sm); background: var(--card-2); border: 1px solid var(--line-2); }
.chat-card { border-radius: var(--r-sm); background: var(--card); border: var(--bw) var(--bs) var(--line-2); }

/* plans and forms */
.xmk4npao { font-size: 17px; margin-block-end: 8px; }
.xmknatzc { font-size: 13px; color: var(--ink-2); margin-block-start: 10px; }
.xmknatzc a, .xmkj5jxu a, .xmkk46xp .check a { text-decoration: underline; color: var(--hl); }
.pack { border: var(--bw) var(--bs) var(--line-2); position: relative; padding-block-end: 34px; }
.pack b { font-family: var(--head); }
.pack .best { border-radius: var(--r-sm); background: var(--brand); color: var(--on-brand); }
.usdt-badge { background: var(--bg-2); color: var(--ink); border: 1px solid var(--line-2); border-radius: var(--r-sm); font-size: 12px; }
.usdt-card { background: var(--card-2); border: var(--bw) var(--bs) var(--line-2); }
.table-wrap { overflow-x: auto; }
.table th, .table td { text-align: start; }
.xmkblhzi tr:first-child td { font-weight: 700; background: var(--bg-2); }
.seg { border-radius: var(--r-sm); background: var(--bg-2); }
.seg label { border-radius: var(--r-sm); }
.seg input:checked + label { background: var(--brand); color: var(--on-brand); }
.xmkk46xp { background: transparent; min-height: 0; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: calc(var(--sp) * 2); align-items: center; }
.xmkkh2hy { background: var(--bg-2); color: var(--ink); padding: 34px; display: flex; flex-direction: column; justify-content: center; gap: 22px; border: 1px solid var(--line-2); border-radius: var(--r-sm); align-self: stretch; }
.xmkruym5 { font: 700 22px var(--head); }
.xmkjupea { position: relative; margin: 0; padding: 14px 18px 38px; background: var(--card); background-image: repeating-linear-gradient(to bottom, transparent 0 31px, var(--rule) 31px 32px); border: 1px solid var(--line-2); border-block-start: 3px solid var(--brand-2); border-radius: var(--r-sm); transform: rotate(-1.2deg); }
.xmka4t2o { display: block; font-size: 12px; color: var(--ink-2); margin-block-end: 6px; }
.xmkjupea span:not(.xmka4t2o) { display: block; font: 400 18px/32px var(--head); }
.xmkkh2hy cite { display: block; font-style: normal; font-size: 13px; color: var(--ink-2); margin-block-start: 6px; }
.xmk2potv { font-size: 13.5px; color: var(--ink-2); }
.xmkeipey { position: relative; padding: 52px 26px 40px; background: var(--card); border: var(--bw) var(--bs) var(--line-2); border-block-start: 4px solid var(--brand-2); border-radius: var(--r-sm); }
.xmkblje3 { position: absolute; inset-block-start: -1px; inset-inline-start: 18px; padding: 4px 14px; font-size: 12.5px; background: var(--brand-2); color: var(--bg); border-radius: 0 0 var(--r-sm) var(--r-sm); max-width: calc(100% - 36px); overflow-wrap: anywhere; }
.xmkk46xp h1 { font-size: 30px; }
.xmkk46xp .muted { margin-block: 6px 18px; }
.xmkj5jxu { text-align: center; font-size: 14px; margin-block-start: 16px; color: var(--ink-2); }
.alert { border-radius: var(--r-sm); }

/* the gate */
.modal-back.xmkncoc6 { background: color-mix(in srgb, var(--bg) 80%, #000); backdrop-filter: none; -webkit-backdrop-filter: none; }
.xmkjvn5p { position: relative; width: min(460px, 100%); background: var(--card); background-image: repeating-linear-gradient(to bottom, transparent 0 31px, var(--rule) 31px 32px); background-position: 0 70px; background-repeat: no-repeat; border: var(--bw) var(--bs) var(--line-2); border-block-start: 6px solid var(--brand-2); border-radius: var(--r-sm); padding: 26px 26px 44px; box-shadow: var(--sh-3); text-align: center; }
.xmkrx72m { font: 12.5px var(--mono); color: var(--ink-2); padding-block-end: 8px; border-block-end: 1px solid var(--line-2); text-align: start; overflow-wrap: anywhere; }
.xmkjvn5p h2 { font-size: 36px; margin-block: 14px 10px; }
.xmkmhnkz { color: var(--ink-2); }
.xmksv7ke { margin-block: 16px 12px; }
.xmk7mq5e { font-size: 12.5px; color: var(--ink-2); }
.xmk7mq5e a { text-decoration: underline; }

/* the engine writes these radii as literals, not tokens */
.fchip span, .fchip-btn, .cbtn, .tile, .to-bottom, .wallet-hero { border-radius: var(--r-sm); }

/* phones: no tab row, no drawers: the sheet runs edge to edge and the divider tabs sit at the foot */
@media (max-width: 900px) {
  :root { --pad: 16px; }
  .xmkp5qh3 { padding: 10px 16px; gap: 6px 10px; }
  .xmkeqtwq { padding-block: 5px; }
  .xmk64xoc { width: 32px; height: 32px; }
  .xmkyta53 { font-size: 19px; }
  .xmk2fnrs { display: none; }
  .xmkhlo4n { font-size: 13px; }
  .xmkhlo4n a { min-height: 34px; padding-inline: 10px; }
  .xmkgcykw, .xmktrhe4, .xmknads6 { display: none; }
  .xmk5gf7m { display: block; padding-inline: 0; }
  .xmklxdh2 { border-inline: 0; border-radius: 0; border-block-end: 0; min-height: 0; }
  .main, .has-rail .main { padding: var(--sp) 16px calc(var(--tab-h) + 24px + env(safe-area-inset-bottom)); }
  .xmktufl5 { padding: 16px 16px calc(var(--tab-h) + 18px + env(safe-area-inset-bottom)); }
  .grid, .grid-sm { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .xmk7tup7, .xmk4pfln { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .xmk7tup7 .xmkms6y5:nth-child(n+3) { display: none; }
  .xmkbykrv .xmkms6y5:nth-child(n+3) { display: none; }
  .xmkpdtai { grid-template-columns: minmax(0, 1fr); gap: var(--sp); }
  .xmk3t2zn li { padding-inline: 10px; }
  .xmkn56xl ul, .xmkq7npc ul { columns: 1; }
  .xmkn56xl a { min-height: 44px; }
  .xmk4b35m { grid-template-columns: minmax(0, 1fr); gap: var(--sp); }
  .xmkrk2p2 { padding-block-end: 34px; }
  .xmkcca7w { margin-inline: -12px; }
  .xmkffgm2 { grid-template-columns: 68px minmax(0, 1fr); font-size: 12.5px; }
  .xmk6ahec { grid-template-columns: minmax(0, 1fr); }
  .xmkzjt7e .btn { flex: 1 1 100%; }
  .search.xmk7m2s3 { min-width: 0; width: 100%; }
  .xmktotpy .frow { flex-direction: column; align-items: stretch; gap: 3px; }
  .xmktotpy .frow-label { width: auto; }
  .chip { min-height: 38px; }
  .chat-page .xmklecxh { height: 100dvh; }
  .chat-page .xmkp5qh3 { display: none; }
  .chat-page .xmk5gf7m { padding-block-end: 0; }
  .chat-page .xmklxdh2 { border: 0; }
  .chat-page .main { padding: 0 0 calc(var(--tab-h) + 8px); }
  .chat-page .chat-shell { grid-template-columns: minmax(0, 1fr); }
  .chat-page .chat-shell.in-thread { position: fixed; inset: 0; z-index: 50; height: 100dvh; }
  .xmkk46xp { grid-template-columns: minmax(0, 1fr); }
  .xmkkh2hy { display: none; }
  .xmkeipey { padding-inline: 18px; }
  .xmkjvn5p { padding-inline: 18px; }
  .xmkblqll { padding: var(--sp); }
  .xmkramli .xmkzxu3y { margin-block-start: 8px; }
}
@media (min-width: 901px) and (max-width: 1100px) {
  .xmk7tup7 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .xmk6ahec { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* theme: intimate. Warm low light, silk sheen, pearl instead of a punched hole, photos with their captions laid over them.
   This block comes last on purpose: it re-dresses the catalogue idea (cards, tabs, drawers) as a private boudoir cabinet. */
:root { --mono: var(--head); --glow: color-mix(in srgb, var(--brand) 42%, transparent); --veil: rgba(14, 5, 9, .84); }
body { background-image: radial-gradient(1000px 560px at 50% -8%, color-mix(in srgb, var(--brand) 22%, transparent), transparent 70%), radial-gradient(800px 560px at 100% 100%, color-mix(in srgb, var(--brand-2) 16%, transparent), transparent 70%), var(--tex); background-size: auto, auto, var(--tex-size); background-attachment: fixed, fixed, scroll; }
body .xmklxdh2 { background-image: linear-gradient(115deg, transparent 0 28%, color-mix(in srgb, var(--brand) 7%, transparent) 44%, transparent 60%), linear-gradient(180deg, color-mix(in srgb, var(--brand) 6%, transparent), transparent 30%); box-shadow: 0 30px 80px -30px var(--glow), inset 0 1px 0 var(--glow); border-color: color-mix(in srgb, var(--brand) 30%, var(--line-2)); }
body .xmkxq5tl { width: 13px; height: 13px; border: 0; background: radial-gradient(circle at 35% 30%, #fff, color-mix(in srgb, var(--brand) 45%, #fff) 40%, color-mix(in srgb, var(--brand) 70%, #000)); box-shadow: 0 0 12px var(--glow); }
body .xmkjjgvo h1, body .xmkchtwy, body .xmkvizt7 h1, body .xmkjvn5p h2 { text-shadow: 0 0 30px var(--glow); }
body .xmknzwyc, body .xmkr6czt, body .xmk6gb6a, body .xmkrk2p2, body .xmkblqll, body .xmkeipey, body .xmkb3e2l, body .xmk2sng2 li, body .xmklsrq3, body .xmkwf3qo, body .xmk7qe3c div, body .xmkfgknu details, body .xmkjupea, body .xmkjvn5p, body .xmkkrggn .xmkfm6ho div, body .xmkm77bs .xmkprk7r:first-child, body .xmkvhub5 .xmk43ldh {
  border-block-start: 1px solid color-mix(in srgb, var(--brand) 55%, var(--line-2)); box-shadow: inset 0 1px 0 var(--glow), 0 -2px 22px -8px var(--glow); }
body .xmknzwyc, body .xmkb3e2l, body .xmk7qe3c div, body .xmkjvn5p, body .xmkjupea, body .xmkffgm2, body .xmktmay7 > ul, body .xmktmay7 > p { background-image: none; }
body .xmk7aw7n { background-image: none; }
body .xmk7upml { line-height: 1.5; margin-block-end: 3px; }
body .xmkfxpau, body .xmkq7npc { border-block-start: 1px solid var(--glow); }
body .btn-primary, body .btn-primary:hover { background: linear-gradient(135deg, var(--brand), color-mix(in srgb, var(--brand) 62%, var(--brand-2))); box-shadow: 0 8px 24px -10px var(--glow), inset 0 -3px 0 rgba(0, 0, 0, .2); }
body .xmksakj7.xmkinbuc, body .xmkflu5f .tab.active { box-shadow: inset 0 2px 0 var(--brand), 0 -6px 20px -8px var(--glow); }
body .xmk5lqkd.xmkinbuc { box-shadow: 0 0 24px -6px var(--glow); background: linear-gradient(135deg, var(--brand), color-mix(in srgb, var(--brand) 62%, var(--brand-2))); }
body .xmkeqtwq { box-shadow: inset 0 0 0 3px var(--card), inset 0 0 0 4px var(--line), 0 0 28px -10px var(--glow); }
body /* photos dominate: every picture carries a warm veil, body and a ruled card lays its caption over the photo */
.xmk2xsxq::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(120% 70% at 50% 0%, color-mix(in srgb, var(--brand) 16%, transparent), transparent 70%), linear-gradient(0deg, rgba(14, 5, 9, .32), transparent 40%); }
body .xmk2xsxq img { transition: transform .7s ease; }
body .xmkms6y5:hover .xmk2xsxq img { transform: scale(1.04); }
body .xmkms6y5 { box-shadow: 0 16px 40px -22px var(--glow); }
body .xmkwx7my .xmkxq5tl { display: none; }
body .xmkwx7my { display: block; }
body .xmkwx7my .xmk43ldh { position: absolute; inset-inline: 0; inset-block-end: 0; z-index: 2; padding: 56px 12px 12px; border: 0; background: linear-gradient(0deg, var(--veil) 0%, rgba(14, 5, 9, .6) 58%, transparent 100%); color: #fff; text-shadow: 0 1px 3px rgba(0, 0, 0, .7); display: flex; flex-direction: column; }
body .xmkwx7my .xmk43ldh > * { line-height: 1.3; color: #fff; }
body .xmkwx7my .xmkohv4c { color: rgba(255, 255, 255, .8); font-size: 12px; }
body .xmkwx7my .xmkqrt6g, body .xmkwx7my .xmkyzcwm { color: rgba(255, 255, 255, .9); font-size: 13px; }
body .xmkwx7my .xmkyzcwm { display: none; }
body .xmkwx7my .xmknzjg3 { font-size: 19px; }
body .xmkwx7my .xmk2xsxq img { aspect-ratio: 640 / 830; }
body .xmk7tup7 .xmkwx7my .xmk43ldh { padding-block-end: 12px; }
body .xmkwx7my .xmkbwbu2 { z-index: 3; }
body .xmkupsic { background: linear-gradient(0deg, var(--veil) 0%, rgba(14, 5, 9, .5) 60%, transparent 100%); }

/* Photo rule (FRAME-BRIEF.md): the wall of portraits too: 220 px or more on a desktop, two to a row on a phone. */
.xmk4pfln { grid-template-columns: repeat(auto-fill, minmax(min(224px, 100%), 1fr)) !important; }
@media (max-width: 900px) { .xmk4pfln { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
/* main is as tall as its content, never the screen: the footer stays below it */
.main, .has-rail .main { min-height: auto; }
.chat-page .main { min-height: 0; }
.xmkramli { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); grid-template-areas: "lab lab" "h1 txt"; gap: 8px calc(var(--sp) * 2); align-items: end; padding: 18px 26px 34px; background: var(--bg-2); border: var(--bw) var(--bs) var(--line-2); border-radius: var(--r); box-shadow: inset 0 0 0 5px var(--bg-2), inset 0 0 0 6px var(--line); }
.xmk5sjfz { grid-area: lab; margin: 0; }
.xmk5sjfz span { display: inline-block; padding: 3px 16px; background: var(--card); border: 1px solid var(--line-2); font: 12.5px var(--mono); box-shadow: inset 0 0 0 2px var(--card), inset 0 0 0 3px var(--line); overflow-wrap: anywhere; }
.xmkramli h1 { grid-area: h1; }
.xmkramli .xmkzxu3y { grid-area: txt; }
.xmksizip { position: absolute; inset-block-end: 9px; inset-inline: 0; margin-inline: auto; width: 76px; height: 11px; border-radius: 6px; background: var(--card); border: 1px solid var(--line-2); }
.xmkk5uye { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-block-start: var(--sp); border-block: 1px dashed var(--line-2); }
.xmkk5uye div { padding: 12px 14px; border-inline-start: 1px dashed var(--line-2); }
.xmkk5uye div:first-child { border-inline-start: 0; }
@media (max-width: 900px) {
  .xmkrltwu { display: flex; flex-direction: column; }
  .xmkramli { display: contents; }
  .xmk5sjfz { order: 0; }
  .xmkramli h1 { order: 1; padding-block: 10px; border-block: 4px double var(--line-2); margin-block-end: 4px; }
  .xmkrltwu .xmk7tup7 { order: 2; }
  .xmkrltwu .hw { order: 3; }
  .xmkramli .xmkzxu3y { order: 4; }
  .xmkk5uye { order: 5; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .xmkk5uye div:nth-child(odd) { border-inline-start: 0; }
  .xmksizip { display: none; }
}
.xmkwx7my .xmk43ldh { display: flex; flex-direction: column; padding: 0 12px 34px; border-block-start: 3px solid var(--brand-2); background-image: repeating-linear-gradient(to bottom, transparent 0 25px, var(--rule) 25px 26px); flex: 1; }
.xmkwx7my .xmk43ldh > * { line-height: 26px; }
.xmkwx7my .xmknzjg3 { font-size: 17px; }
.xmkwx7my .xmkyzcwm { line-height: 26px; }
.xmk7tup7 .xmkwx7my .xmk43ldh { padding-block-end: 32px; }
/* Photo rule (FRAME-BRIEF.md): her portrait is the main element: 220 px or more on a desktop, 4:5, two cards per row on a phone. */
.grid:not(.xmk7tup7), .grid-sm { grid-template-columns: repeat(auto-fill, minmax(min(224px, 100%), 1fr)) !important; }
.row-scroll { grid-auto-columns: minmax(224px, 264px) !important; }
@media (max-width: 900px) {
  .grid, .grid-sm { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px 10px !important; }
  .row-scroll { grid-auto-columns: minmax(46%, 48%) !important; }
}
.xmkky5vl { list-style: none; margin: var(--sp) 0 0; padding: 0; counter-reset: st; }
.xmkky5vl li { counter-increment: st; position: relative; }
.xmkky5vl li::before { content: counter(st, decimal-leading-zero); font-family: var(--mono); font-weight: 700; color: var(--ink-2); }
.xmk2sng2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr)); gap: var(--sp); }
.xmk2sng2 li { padding: 40px 16px 30px; background: var(--card); border: 1px solid var(--line-2); border-block-start: 3px solid var(--brand-2); border-radius: var(--r-sm); }
.xmk2sng2 li:nth-child(even) { margin-block-start: 14px; }
.xmk2sng2 li::before { position: absolute; inset-block-start: 10px; inset-inline-start: 14px; font-size: 13px; }
.xmk2sng2 h3 { font-size: 19px; margin-block-end: 6px; }
@media (max-width: 900px) { .xmk2sng2 li:nth-child(even) { margin-block-start: 0; } }
.xmkyspr6 details { margin-block-end: 8px; background: var(--card-2); border: var(--bw) var(--bs) var(--line-2); border-radius: var(--r-sm); }
.xmkyspr6 details[open] { border-inline-start: 6px solid var(--brand-2); }
.xmkyspr6 summary { list-style: none; display: flex; align-items: center; gap: 14px; min-height: 52px; padding: 10px 16px; cursor: pointer; font: 700 17px/1.3 var(--head); }
.xmkyspr6 summary::-webkit-details-marker { display: none; }
.xmkyspr6 summary::before { content: ""; flex: none; width: 34px; height: 9px; border-radius: 5px; background: var(--card); border: 1px solid var(--line-2); }
.xmkyspr6 p { padding: 0 16px 14px 64px; padding-inline: 64px 16px; max-width: 76ch; }
@media (max-width: 900px) { .xmkyspr6 p { padding-inline: 16px; } }
.xmkwg5rw { position: relative; margin-block-start: 30px; }
.xmki7gvd { position: absolute; inset-block-start: -28px; inset-inline-start: 22px; height: 28px; padding: 3px 22px; font: 700 13px/22px var(--mono); color: var(--ink); background: var(--card-2); border: var(--bw) var(--bs) var(--line-2); border-block-end: 0; border-start-start-radius: var(--r); border-start-end-radius: var(--r); }
.xmkigavq > .xmkwg5rw:nth-child(3n) .xmki7gvd { inset-inline-start: 150px; }
.xmkigavq > .xmkwg5rw:nth-child(3n+2) .xmki7gvd { inset-inline-start: 278px; }
.xmkxwpsz { padding: var(--pad); background: var(--card-2); border: var(--bw) var(--bs) var(--line-2); border-radius: var(--r); border-start-start-radius: 0; }
.xmkwg5rw .xmknzwyc, .xmkwg5rw .xmkr6czt { background-color: var(--card); }
.xmkwg5rw .xmkbyefk { display: none; }
@media (max-width: 900px) { .xmkigavq > .xmkwg5rw .xmki7gvd { inset-inline-start: 14px !important; } .xmkxwpsz { padding: var(--sp); } }
/* nav: a thumb index hanging off the edge of the sheet */
.xmktrhe4 { flex: none; width: 116px; position: sticky; inset-block-start: 16px; align-self: flex-start; display: flex; flex-direction: column; gap: 5px; padding-block-start: 26px; z-index: 2; }
.xmk4i5yf { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 6px; min-height: 46px; padding: 8px 12px; background: var(--bg-2); color: var(--ink-2); border: var(--bw) var(--bs) var(--line-2); font: 700 14px/1.2 var(--head); overflow-wrap: anywhere; }
.xmk4i5yf:hover { color: var(--ink); background: var(--card-2); }
.xmk4i5yf.xmkinbuc { background: var(--card); color: var(--ink); }
.xmk4i5yf.xmkinbuc::before { content: ""; position: absolute; inset-block: 0; width: 4px; background: var(--brand-2); }
.xmk4i5yf b { font-size: 12px; color: var(--hl); }
.xmknro44 .xmk4i5yf { border-inline-end: 0; border-start-start-radius: var(--r); border-end-start-radius: var(--r); }
.xmknro44 .xmk4i5yf.xmkinbuc { margin-inline-end: calc(-1 * var(--bw)); padding-inline-end: calc(12px + var(--bw)); }
.xmknro44 .xmk4i5yf.xmkinbuc::before { inset-inline-start: 0; }
.xmkpysji .xmk4i5yf { border-inline-start: 0; border-start-end-radius: var(--r); border-end-end-radius: var(--r); }
.xmkpysji .xmk4i5yf.xmkinbuc { margin-inline-start: calc(-1 * var(--bw)); padding-inline-start: calc(12px + var(--bw)); }
.xmkpysji .xmk4i5yf.xmkinbuc::before { inset-inline-end: 0; }
.xmktet6o.xmknro44 .xmklxdh2 { border-start-start-radius: 0; }
.xmktet6o.xmkpysji .xmklxdh2 { border-start-end-radius: 0; }
