/* ════════════════════════════════════════════════════════════════
   THE CROSSING — MotusMoves Market Exchange ($DASH ⇄ $TRUST)

   Thesis: "Value crosses. We never hold it."

   The mote travels the arc, passes BEHIND our seal, and never rests in
   the middle — non-custody made visible, not merely claimed. The blue
   pole is $DASH (a UTXO world with no contracts). The mint pole is
   $TRUST (an EVM world). They never touch; the arc IS the passage.

   Kurzgesagt-clean: vibrant flat accents, big curved edges, BIG readable
   type, generous air. Motion stays under the threshold — one hero gesture
   (the direction flip), and a single travelling light.

   Loaded after motus.css; inherits its tokens.
═══════════════════════════════════════════════════════════════════ */

:root{
  --dash:      #4a9df8;                    /* the $DASH pole */
  --dash-soft: #a9d0ff;
  --line-dash: rgba(74,157,248,.32);
  --glow-dash: 0 0 22px rgba(74,157,248,.34);
}

.mx{ margin:clamp(28px,7vw,60px) 0; }

/* ── the heading ───────────────────────────────────────────── */
.mx__head{ text-align:center; max-width:46ch; margin:0 auto clamp(18px,4vw,28px); }
.mx__eyebrow{
  display:inline-flex; align-items:center; gap:.55em; margin:0 0 .8em;
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700;
  color:var(--trust);
}
.mx__eyebrow::before{ content:""; width:26px; height:1px; background:linear-gradient(90deg,transparent,var(--trust)); }
.mx__eyebrow::after { content:""; width:26px; height:1px; background:linear-gradient(90deg,var(--trust),transparent); }
.mx__title{
  margin:0; font-weight:700; line-height:1.24; letter-spacing:-.015em;
  font-size:clamp(1.35rem,5.2vw,2.15rem); color:var(--ink);
}
.mx__title b{ color:var(--dash);  font-weight:800; }
.mx__title i{ color:var(--trust); font-style:normal; font-weight:800; }
.mx__sub{ margin:.8em auto 0; max-width:42ch; font-size:1rem; line-height:1.55; color:var(--ink-soft); }

/* ── the panel ─────────────────────────────────────────────── */
.mx__panel{
  position:relative; border-radius:var(--r-xl);
  background:linear-gradient(180deg,rgba(12,16,30,.92),rgba(8,10,20,.96));
  border:1px solid var(--glass-line); box-shadow:var(--shadow-glass);
  padding:clamp(16px,4.5vw,28px); overflow:hidden;
}
/* one earned light, blooming from the crossing point outward */
.mx__panel::before{
  content:""; position:absolute; inset:-40% 20% auto; height:70%;
  background:radial-gradient(closest-side,rgba(177,92,255,.13),transparent 72%);
  pointer-events:none;
}

/* ── THE CROSSING (the hero symbol) ────────────────────────── */
.mx__crossing{
  position:relative; display:grid; grid-template-columns:1fr auto 1fr;
  align-items:center; gap:clamp(6px,2vw,16px); margin:0 0 clamp(16px,4vw,24px);
}
.mx__pole{
  display:flex; flex-direction:column; align-items:center; gap:.45em;
  padding:clamp(12px,3vw,18px) clamp(8px,2vw,14px);
  border-radius:var(--r-lg); border:1px solid var(--glass-line);
  background:var(--glass-3); text-align:center;
  transition:border-color .3s ease, background .3s ease;
}
.mx__pole b{ font-size:clamp(1.05rem,4vw,1.35rem); font-weight:800; letter-spacing:-.01em; }
.mx__pole span{ font-size:.78rem; color:var(--ink-soft); letter-spacing:.04em; }
.mx__pole--dash { border-color:var(--line-dash);  background:linear-gradient(180deg,rgba(74,157,248,.10),transparent); }
.mx__pole--dash b{ color:var(--dash); }
.mx__pole--trust{ border-color:var(--line-trust); background:linear-gradient(180deg,rgba(95,243,192,.10),transparent); }
.mx__pole--trust b{ color:var(--trust); }
/* the origin pole leans forward — you can see which way value is moving */
.mx__pole.is-from{ box-shadow:var(--rim); }

/* the arc + the travelling mote — value passes THROUGH, never rests */
.mx__arc{ position:relative; width:clamp(54px,16vw,120px); height:56px; }
.mx__arc svg{ width:100%; height:100%; overflow:visible; display:block; }
.mx__arc-path{ fill:none; stroke:url(#mxGrad); stroke-width:2; stroke-linecap:round; opacity:.55; }
.mx__mote{
  fill:#fff;
  filter:drop-shadow(0 0 5px rgba(255,255,255,.9)) drop-shadow(0 0 12px rgba(177,92,255,.7));
}
/* our seal sits BESIDE the passage, never on it — we witness, we do not hold */
.mx__seal{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:22px; height:22px; border-radius:50%;
  border:1.5px solid rgba(255,255,255,.28); background:rgba(8,10,20,.92);
  display:grid; place-items:center; font-size:.62rem; color:var(--ink-soft); z-index:2;
}
@media (prefers-reduced-motion:no-preference){
  .mx__mote{ animation:mxCross 3.4s cubic-bezier(.55,.05,.45,.95) infinite; }
  @keyframes mxCross{
    0%,8%    { offset-distance:0%;   opacity:0; }
    16%      { opacity:1; }
    84%      { opacity:1; }
    92%,100% { offset-distance:100%; opacity:0; }
  }
}
.mx.is-reversed .mx__mote{ animation-direction:reverse; }

/* ── direction: equal weight, no hidden reverse ────────────── */
.mx__flip{
  display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:0 0 16px;
  padding:5px; border-radius:var(--r-pill); background:var(--glass-3); border:1px solid var(--glass-line);
}
.mx__flip button{
  min-height:46px; border:0; border-radius:var(--r-pill); cursor:pointer;
  font:inherit; font-weight:700; font-size:.95rem; color:var(--ink-soft);
  background:transparent; transition:color .18s ease, background .18s ease;
}
.mx__flip button[aria-pressed="true"]{ color:#04121a; background:linear-gradient(135deg,var(--dash),var(--trust)); }

.mx__field{ margin:0 0 14px; }
.mx__label{
  display:block; margin:0 0 .5em; font-size:.78rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--trust);
}
.mx__amt{ display:flex; align-items:center; gap:10px; }
.mx__amt input{
  flex:1; min-width:0; min-height:56px; padding:0 16px;
  border-radius:var(--r-md); border:1px solid var(--glass-line);
  background:rgba(255,255,255,.04); color:var(--ink);
  font:inherit; font-size:1.45rem; font-weight:700; letter-spacing:-.01em;
}
.mx__amt input:focus{ outline:none; border-color:var(--line-trust); box-shadow:var(--glow-trust); }
.mx__amt-cur{ font-weight:800; font-size:1.05rem; color:var(--ink); white-space:nowrap; }
.mx__dest input{
  width:100%; min-height:52px; padding:0 14px;
  border-radius:var(--r-md); border:1px solid var(--glass-line);
  background:rgba(255,255,255,.04); color:var(--ink);
  font:inherit; font-size:.95rem;
}
.mx__dest input:focus{ outline:none; border-color:var(--line-trust); box-shadow:var(--glow-trust); }
.mx__saved{
  display:inline-flex; align-items:center; gap:.5em; margin:8px 0 0;
  font-size:.9rem; color:var(--trust); background:none; border:0; cursor:pointer; font-weight:700;
}

/* ── the receipt — every fee on its own line, never blended ── */
.mx__receipt{
  border-radius:var(--r-md); border:1px solid var(--glass-line);
  background:var(--glass-3); padding:14px 16px; margin:0 0 14px;
}
.mx__row{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:.42em 0; font-size:.95rem; }
.mx__row dt{ color:var(--ink-soft); }
.mx__row dd{ margin:0; font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; }
.mx__row--out{ border-top:1px solid var(--glass-line); margin-top:.4em; padding-top:.7em; }
.mx__row--out dt{ color:var(--ink); font-weight:700; }
.mx__row--out dd{ font-size:1.25rem; color:var(--trust); }
.mx__slip{ font-weight:800; }
.mx__slip[data-level="ok"]  { color:var(--trust); }
.mx__slip[data-level="warn"]{ color:#ffd166; }
.mx__slip[data-level="bad"] { color:#ff8095; }

/* ── deposit: on a phone, the QR IS the interaction ────────── */
.mx__deposit{
  border-radius:var(--r-lg); border:1px solid var(--line-trust);
  background:linear-gradient(180deg,rgba(95,243,192,.07),transparent);
  padding:clamp(14px,4vw,22px); text-align:center;
}
.mx__qr{
  width:min(232px,64vw); aspect-ratio:1; margin:0 auto 14px; padding:12px;
  border-radius:var(--r-md); background:#fff;   /* a QR must be high-contrast to scan */
}
.mx__qr svg{ width:100%; height:100%; display:block; }
.mx__addr{
  display:block; width:100%; word-break:break-all; text-align:center;
  font-family:ui-monospace,"SFMono-Regular",Menlo,monospace; font-size:.9rem; line-height:1.5;
  color:var(--ink); background:rgba(255,255,255,.05); border:1px solid var(--glass-line);
  border-radius:var(--r-sm); padding:12px; margin:0 0 10px;
}
.mx__copy{ min-height:48px; width:100%; border-radius:var(--r-pill); font-weight:700; }

/* ── the deposit screen, reduced to what a person actually needs ─────────
   How much · which mainnet · where · and one light that turns on by itself. */
.mx__send{ margin:0; font-size:clamp(1.25rem,5vw,1.6rem); font-weight:700; letter-spacing:-.01em; color:var(--ink); }
.mx__send b{ font-weight:800; }
.mx__net{
  margin:4px 0 16px; font-size:.72rem; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--trust);
}
.mx__fine{ margin:12px 0 0; font-size:.82rem; line-height:1.55; color:var(--ink-soft); }

/* WHAT YOU GET — carried on every screen of the transfer, never only the quote */
.mx__get{
  display:block; margin:0 0 16px; padding:12px 16px; border-radius:var(--r-md);
  border:1px solid var(--line-trust); background:rgba(95,243,192,.07);
}
.mx__get-k{
  display:block; font-size:.68rem; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--trust); margin-bottom:3px;
}
.mx__get-v{ display:block; font-size:clamp(1.15rem,4.5vw,1.4rem); font-weight:800; color:var(--ink); letter-spacing:-.01em; }
.mx__get-n{ display:block; margin-top:3px; font-size:.74rem; color:var(--ink-soft); }

/* THE LIVE LIGHT — the whole point. It is never a spinner that lies: each
   state is a real thing the server saw on-chain this second. */
.mx__live{
  display:flex; align-items:center; justify-content:center; gap:10px;
  margin:14px 0 0; padding:13px 16px; border-radius:var(--r-md);
  border:1px solid var(--glass-line); background:rgba(255,255,255,.04);
  font-size:.9rem; font-weight:600; color:var(--ink); text-align:left;
  transition:border-color .5s ease, background .5s ease;
}
.mx__live a{ color:var(--trust); }
.mx__dot{
  width:9px; height:9px; border-radius:50%; flex:0 0 9px;
  background:var(--ink-soft); box-shadow:0 0 0 0 transparent;
  animation:mxPulse 2.4s ease-in-out infinite;
}
@keyframes mxPulse{ 0%,100%{ opacity:.45 } 50%{ opacity:1 } }

/* seen in the mempool — something is happening, not yet final */
.mx__live[data-state="seen"]{ border-color:rgba(255,209,102,.4); background:rgba(255,209,102,.07); }
.mx__live[data-state="seen"] .mx__dot{ background:#ffd166; box-shadow:0 0 14px 3px rgba(255,209,102,.42); animation-duration:1s; }
/* locked / confirmed, or a carry underway — a soft aura, never a hard highlight */
.mx__live[data-state="ok"],
.mx__live[data-state="go"]{ border-color:var(--line-trust); background:rgba(95,243,192,.08); }
.mx__live[data-state="ok"] .mx__dot,
.mx__live[data-state="go"] .mx__dot{ background:var(--trust); box-shadow:0 0 16px 4px rgba(95,243,192,.4); animation:none; opacity:1; }

/* HOW LONG — one line, quiet, and it tells the truth about which road */
.mx__eta{ margin:8px 0 0; font-size:.82rem; font-weight:600; color:var(--ink-soft); text-align:center; }
.mx__eta[data-road="fast"]{ color:var(--trust); }

/* ── MOTUSMOVES IN MOTION ────────────────────────────────────────────
   THE MARK: a value entering motion. A still core, a ring that holds it, and
   an arc that travels the ring and carries it outward — held, released, going.
   That is a move, drawn once. It keeps company for the wait and nothing more. */
.mx__brief{
  display:flex; flex-direction:column; align-items:center; gap:12px;
  margin:16px 0 0; padding:22px 16px 20px; border-radius:var(--r-md);
  border:1px solid var(--glass-line); background:rgba(255,255,255,.03);
  text-align:center; min-height:212px;
}
/* ══ THE MOTUSMIND ══════════════════════════════════════════════════
   The canonical MotusMoves mark. A mind in cyan. Beneath it a heart that
   beats, and on every beat sends value — $ — up into the mind, which
   brightens as it receives. Investment as circulation: what you put in
   doesn't vanish, it becomes the thing that moves you.
   3.2s loop, three beats, three gifts. Reusable anywhere. */
/* The loop runs 3.6s. Every timing below is a percentage of that one clock,
   so the beat, the flight, the landing, and the glow are one motion — not
   four animations that happen to overlap. */
.mm{ width:min(248px,84vw); height:auto; overflow:visible; display:block; }

/* ── LEFT NODE · the person ── */
.mm-head, .mm-body{
  fill:none; stroke:var(--trust); stroke-width:2.4;
  stroke-linecap:round; stroke-linejoin:round;
}
.mm-head{ animation:mmReceive 3.6s ease-out infinite; }
.mm-body{ opacity:.55; }
.mm-fold{
  fill:none; stroke:var(--trust); stroke-width:1.7;
  stroke-linecap:round; opacity:.30;
  animation:mmFold 3.6s ease-out infinite;
}
.mm-f2{ animation-delay:.07s }
.mm-f3{ animation-delay:.14s }
/* the well — where the coin actually lands. It absorbs, then settles. */
.mm-well{
  fill:var(--trust); opacity:0;
  transform-origin:66px 60px;
  animation:mmLand 3.6s cubic-bezier(.22,1,.36,1) infinite;
}
.mm-halo{ animation:mmHalo 3.6s ease-out infinite; }

/* ── RIGHT NODE · the heart ── */
.mm-heart{
  fill:var(--trust); stroke:none;
  transform-origin:196px 92px;
  animation:mmBeat 3.6s cubic-bezier(.34,1.5,.5,1) infinite;
  filter:drop-shadow(0 0 9px rgba(95,243,192,.45));
}

/* ── THE RAILS · the loop, barely there ── */
.mm-rail{
  fill:none; stroke:var(--trust); stroke-width:1.2;
  stroke-dasharray:2 7; opacity:.16;
}
.mm-rail--back{ opacity:.09 }

/* ── THE VALUE · one coin, riding the arc ── */
.mm-coin text{
  fill:var(--trust); font-size:19px; font-weight:800;
  font-family:inherit;
}
.mm-coin{ animation:mmCoin 3.6s cubic-bezier(.22,1,.36,1) infinite; }
.mm-echo circle{ fill:var(--trust); }
.mm-echo{ animation:mmEcho 3.6s ease-in-out 1.9s infinite; }

/* the heart gathers (one clean beat) and lets the coin go at 17% */
@keyframes mmBeat{
  0%      { transform:scale(1) }
  8%      { transform:scale(.90) }
  17%     { transform:scale(1.20) }
  27%     { transform:scale(1) }
  100%    { transform:scale(1) }
}
/* the coin: waits inside the heart, flies 17%→62%, lands and is absorbed */
@keyframes mmCoin{
  0%,14%  { opacity:0; }
  20%     { opacity:1; }
  56%     { opacity:1; }
  62%     { opacity:0; }
  100%    { opacity:0; }
}
/* the landing — a bloom at the well, exactly when the coin arrives */
@keyframes mmLand{
  0%,58%  { opacity:0; transform:scale(.4) }
  64%     { opacity:1; transform:scale(2.3) }
  76%     { opacity:.7; transform:scale(1) }
  92%,100%{ opacity:0; transform:scale(1) }
}
/* and the mind brightens because it received something */
@keyframes mmReceive{
  0%,58%  { stroke-width:2.4; filter:none }
  66%     { stroke-width:3.0; filter:drop-shadow(0 0 12px rgba(95,243,192,.65)) }
  88%,100%{ stroke-width:2.4; filter:none }
}
@keyframes mmFold{
  0%,58%  { opacity:.30 }
  68%     { opacity:1 }
  90%,100%{ opacity:.30 }
}
@keyframes mmHalo{
  0%,58%  { opacity:.30 }
  68%     { opacity:1 }
  92%,100%{ opacity:.30 }
}
/* the return — the loop closing, quietly */
@keyframes mmEcho{
  0%,6%   { opacity:0 }
  16%     { opacity:.55 }
  50%     { opacity:.55 }
  58%,100%{ opacity:0 }
}
@media (prefers-reduced-motion:reduce){
  .mm-head,.mm-fold,.mm-heart,.mm-halo,.mm-coin,.mm-echo,.mm-well{ animation:none }
  .mm-coin{ opacity:1 } .mm-well{ opacity:.8 } .mm-echo{ opacity:.4 }
}

/* the creed under the mark — said once, quietly, always */
.mx__brief-creed{
  display:block; margin-top:2px; font-size:.74rem; line-height:1.5;
  color:var(--ink-soft); max-width:30ch;
}
.mx__brief-v{
  display:block; font-size:1rem; font-weight:700; letter-spacing:-.01em;
  line-height:1.4; color:var(--ink);
}
.mx__brief-v.is-in{ animation:mxBrief 800ms cubic-bezier(.22,1,.36,1) both; }
@keyframes mxBrief{ from{ opacity:0; transform:translateY(6px) } to{ opacity:1; transform:none } }
@media (prefers-reduced-motion:reduce){
  .mx__mark-core,.mx__mark-arc,.mx__mark-orbit,.mx__brief-v.is-in{ animation:none; }
  .mx__mark-orbit{ opacity:.25; }
}

/* ── DONE ────────────────────────────────────────────────────────────
   The screen every crossing is trying to reach. One seal, one number, one
   link to the chain. At this moment nothing else is true or needed. */
.mx__done{ text-align:center; padding:26px 16px 22px; }
.mx__seal{ width:74px; height:74px; margin:0 auto 14px; display:block; overflow:visible; }
.mx__seal circle, .mx__seal path{ fill:none; stroke-linecap:round; stroke-linejoin:round; }
.mx__seal-ring{
  stroke:var(--trust); stroke-width:2.5;
  stroke-dasharray:164; stroke-dashoffset:164;
  transform:rotate(-90deg); transform-origin:36px 36px;
  animation:mxSealRing 620ms cubic-bezier(.22,1,.36,1) forwards;
  filter:drop-shadow(0 0 12px rgba(95,243,192,.45));
}
.mx__seal-tick{
  stroke:var(--trust); stroke-width:3.5;
  stroke-dasharray:40; stroke-dashoffset:40;
  animation:mxSealTick 420ms cubic-bezier(.22,1,.36,1) 480ms forwards;
}
@keyframes mxSealRing{ to{ stroke-dashoffset:0 } }
@keyframes mxSealTick{ to{ stroke-dashoffset:0 } }
.mx__done-amt{
  margin:0; font-size:clamp(1.6rem,7vw,2.1rem); font-weight:800;
  letter-spacing:-.02em; color:var(--ink);
  animation:mxBrief 600ms cubic-bezier(.22,1,.36,1) 640ms both;
}
.mx__done-amt b{ color:var(--trust); }
.mx__done-sub{
  margin:6px 0 18px; font-size:.86rem; color:var(--ink-soft);
  animation:mxBrief 600ms cubic-bezier(.22,1,.36,1) 720ms both;
}
.mx__done-link{ display:inline-block; min-height:46px; line-height:46px; padding:0 22px; border-radius:var(--r-pill); font-weight:700; }
.mx__done-again{
  display:block; margin:14px auto 0; background:none; border:0;
  font:inherit; font-size:.84rem; color:var(--ink-soft); cursor:pointer;
  text-decoration:underline; text-underline-offset:3px;
}
@media (prefers-reduced-motion:reduce){
  .mx__seal-ring,.mx__seal-tick{ animation:none; stroke-dashoffset:0; }
  .mx__done-amt,.mx__done-sub{ animation:none; }
}

.mx__fallback{ margin:12px 0 0; }
.mx__fallback summary{ cursor:pointer; font-size:.78rem; color:var(--ink-soft); list-style:none; }
.mx__fallback summary::-webkit-details-marker{ display:none; }
@media (prefers-reduced-motion:reduce){ .mx__dot{ animation:none; } }
.mx__ttl{ margin:12px 0 0; font-size:.9rem; color:var(--ink-soft); }
.mx__ttl b{ color:var(--trust); font-variant-numeric:tabular-nums; }

/* the refund warning is never fine print — a refund goes to the SENDING address */
.mx__warn{
  display:flex; gap:10px; align-items:flex-start; text-align:left;
  margin:14px 0 0; padding:12px 14px; border-radius:var(--r-md);
  border:1px solid rgba(255,209,102,.34); background:rgba(255,209,102,.09);
  font-size:.92rem; line-height:1.5; color:#ffe6ad;
}
.mx__warn b{ color:#ffd166; }

/* honesty block — we say plainly what this is, and what it is not */
.mx__truth{ margin:14px 0 0; font-size:.86rem; line-height:1.6; color:var(--ink-soft); }
.mx__truth b{ color:var(--ink); }

.mx__note{ margin:10px 0 0; font-size:.86rem; color:var(--ink-soft); text-align:center; }
.mx__err{
  margin:12px 0 0; padding:12px 14px; border-radius:var(--r-md);
  border:1px solid rgba(255,128,149,.34); background:rgba(255,128,149,.09);
  color:#ffc2cc; font-size:.93rem; line-height:1.55;
}

/* ── the two legs, described honestly ──────────────────────── */
.mx__legs{ counter-reset:leg; margin:14px 0 0; padding:0; list-style:none; }
.mx__leg{
  position:relative; padding:10px 0 10px 38px; font-size:.92rem; line-height:1.55; color:var(--ink-soft);
}
.mx__leg::before{
  counter-increment:leg; content:counter(leg);
  position:absolute; left:0; top:9px; width:24px; height:24px; border-radius:50%;
  display:grid; place-items:center; font-size:.75rem; font-weight:800; color:var(--ink);
  border:1px solid var(--glass-line); background:var(--glass-2);
}
.mx__leg b{ color:var(--ink); }
.mx__leg--atomic::before{ border-color:var(--line-trust); color:var(--trust); }

/* ── Roots transparency — the wallet each inspiration is paid at ── */
.mx-root{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:10px 12px; border-radius:var(--r-sm);
  border:1px solid var(--glass-line); background:var(--glass-3); margin:6px 0 0;
}
.mx-root__who{ font-weight:700; color:var(--ink); }
.mx-root__pct{ font-weight:800; color:var(--trust); font-variant-numeric:tabular-nums; }
.mx-root__addr{
  font-family:ui-monospace,"SFMono-Regular",Menlo,monospace; font-size:.8rem;
  color:var(--dash-soft); text-decoration:none; border-bottom:1px dotted var(--line-dash);
  word-break:break-all;
}
.mx-root__addr:hover{ color:var(--dash); }
.mx-root__addr--trust{ color:var(--trust-soft); border-bottom-color:var(--line-trust); }
.mx-root__addr--trust:hover{ color:var(--trust); }
.mx-root__none{ font-size:.84rem; color:var(--ink-soft); }
.mx-root__verify{ font-size:.78rem; color:var(--ink-soft); }

@media (min-width:720px){
  .mx__flip{ max-width:420px; margin-inline:auto; }
  .mx__arc{ height:72px; }
}

/* ── My MotusModels — live/in-use status chips (rendered by app.js modelLibCard) ── */
.mlib-stats{ display:flex; flex-wrap:wrap; gap:6px; margin:8px 0 2px; }
.mlib-stat{ display:inline-flex; align-items:center; gap:.4em; font-size:.74rem; font-weight:700; letter-spacing:.02em;
  padding:4px 10px; border-radius:var(--r-pill); border:1px solid var(--glass-line); background:var(--glass-3); color:var(--ink-soft); }
.mlib-stat--hot{    color:var(--trust);  border-color:var(--line-trust);  box-shadow:var(--glow-trust); }
.mlib-stat--listed{ color:var(--cyan);   border-color:var(--line-cyan); }
.mlib-stat--draft{  color:var(--ink-mute); }
.mlib-stat--pay{    color:var(--dash-soft); border-color:var(--line-dash); }

/* ── LIVE reference prices — the rate you're getting, always visible ── */
.mx__prices{
  display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap;
  margin:clamp(12px,3vw,18px) auto 0;
}
.mx__px{
  display:inline-flex; align-items:center; gap:.5em;
  padding:6px 13px; border-radius:var(--r-pill);
  border:1px solid var(--glass-line); background:var(--glass-3);
  font-size:.86rem; font-weight:800; letter-spacing:.01em; color:var(--ink);
}
.mx__px b{ font-weight:800; }
.mx__px[data-px="DASH"] b{  color:var(--dash); }
.mx__px[data-px="TRUST"] b{ color:var(--trust); }
.mx__px-val{ font-variant-numeric:tabular-nums; color:var(--ink); }
.mx__px-dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--signal,#5ff3c0); box-shadow:0 0 8px var(--signal,#5ff3c0);
  animation:mxPulse 2.4s ease-in-out infinite;
}
.mx__px[data-px="DASH"] .mx__px-dot{  background:var(--dash);  box-shadow:var(--glow-dash); }
.mx__px[data-px="TRUST"] .mx__px-dot{ background:var(--trust); box-shadow:var(--glow-trust); }
.mx__px.is-stale .mx__px-dot{ animation:none; opacity:.55; }
.mx__px.is-down{ opacity:.6; }
.mx__px.is-down .mx__px-dot{ background:var(--ink-mute); box-shadow:none; animation:none; }
.mx__px-note{ font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--trust); opacity:.85; }
@keyframes mxPulse{ 0%,100%{ transform:scale(1); opacity:1; } 50%{ transform:scale(.72); opacity:.5; } }
@media (prefers-reduced-motion:reduce){ .mx__px-dot{ animation:none; } }

/* ── the separate MotusMoves fee row + note (Option-1: never taken from the swap) ── */
.mx__row--fee dt{ color:var(--dash-soft); }
.mx__row--fee dd{ color:var(--ink); font-variant-numeric:tabular-nums; }
.mx__sep{ font-size:.72rem; font-weight:700; letter-spacing:.04em; color:var(--trust); text-transform:uppercase; opacity:.85; }
.mx__note--fee{ text-align:left; margin-top:10px; color:var(--ink-soft); }
.mx__note--fee b{ color:var(--ink); }

/* ════════════════════════════════════════════════════════════════
   MISSION 2 — LIVE ADOPTION KPIs · the $TRUST VAULT · the COORDINATION RECEIPT
   The flywheel made visible. Real numbers, on-chain proof, staked belief.
═══════════════════════════════════════════════════════════════════ */

/* ── live KPI chips (per MotusModel) ── */
.kpis{ display:flex; flex-wrap:wrap; gap:6px; margin:8px 0 2px; }
.kpi{ display:inline-flex; align-items:center; gap:.4em; font-size:.74rem; font-weight:700; letter-spacing:.01em;
  padding:4px 10px; border-radius:var(--r-pill); border:1px solid var(--glass-line); background:var(--glass-3); color:var(--ink); font-variant-numeric:tabular-nums; }
.kpi--runs{ color:var(--trust); border-color:var(--line-trust); }
.kpi--ops{ color:var(--cyan); border-color:var(--line-cyan); }
.kpi--live{ color:var(--signal,#5ff3c0); border-color:rgba(95,243,192,.3); }
.kpi--new{ color:var(--dash-soft); border-color:var(--line-dash); }
.kpi__pulse{ width:6px; height:6px; border-radius:50%; background:var(--signal,#5ff3c0); box-shadow:0 0 8px var(--signal,#5ff3c0); animation:mxPulse 2.2s ease-in-out infinite; }

/* ── the heartbeat: IsLive (released) + IsActive (running the loop right now) ── */
.kpi--islive{ color:#ff5c8a; border-color:rgba(255,92,138,.4); background:rgba(255,92,138,.08); letter-spacing:.06em; }
.kpi--islive .kpi__pulse{ background:#ff5c8a; box-shadow:0 0 10px #ff5c8a; }
.kpi--now{ color:#ff3d71; border-color:rgba(255,61,113,.5); background:rgba(255,61,113,.12);
  font-weight:800; box-shadow:0 0 16px rgba(255,61,113,.22); }
.kpi--now .kpi__beat{ width:8px; height:8px; border-radius:50%; background:#ff3d71; box-shadow:0 0 10px #ff3d71;
  animation:kpiBeat 1.1s cubic-bezier(.6,0,.4,1) infinite; }
.kpi--auto{ color:var(--trust); border-color:var(--line-trust); background:linear-gradient(120deg,rgba(124,92,255,.1),rgba(61,242,255,.06)); }
@keyframes kpiBeat{ 0%,100%{ transform:scale(1); opacity:1; } 25%{ transform:scale(1.55); opacity:.7; } 40%{ transform:scale(1); } }

/* a live model glows at the edge; the Go-Live button when it's on */
.modelcard--live{ border-color:rgba(255,92,138,.28); box-shadow:0 0 0 1px rgba(255,92,138,.12), 0 8px 30px rgba(255,61,113,.10); }
.pill--liveon{ color:#fff; background:linear-gradient(120deg,#ff3d71,#ff5c8a); border-color:transparent; box-shadow:0 0 16px rgba(255,61,113,.35); }
@media (prefers-reduced-motion:reduce){ .kpi--now .kpi__beat{ animation:none; } }

/* ── site-wide KPI strip (the Commons at a glance) ── */
.skpi-wrap{ margin:0 0 16px; }
.skpi{ display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.skpi__cell{ text-align:center; padding:12px 6px; border-radius:var(--r-md,14px); border:1px solid var(--glass-line); background:var(--glass-2,var(--glass-3)); }
.skpi__cell b{ display:block; font-size:clamp(1.1rem,4vw,1.5rem); font-weight:800; color:var(--ink); font-variant-numeric:tabular-nums; line-height:1.1; }
.skpi__cell span{ display:block; margin-top:3px; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:var(--trust); font-weight:700; }
@media (max-width:560px){ .skpi{ grid-template-columns:repeat(3,1fr); } }

/* ── the $TRUST vault panel (belief, staked) ── */
.mvault{ margin:14px 0; padding:16px; border-radius:var(--r-md,16px);
  border:1px solid var(--line-trust); background:linear-gradient(160deg,rgba(95,243,192,.06),rgba(61,242,255,.03));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05); }
.mvault__head{ display:flex; align-items:center; gap:10px; }
.mvault__glyph{ font-size:1.3rem; color:var(--trust); text-shadow:var(--glow-trust); }
.mvault__k{ margin:0; font-weight:800; color:var(--ink); font-size:1rem; }
.mvault__sub{ margin:1px 0 0; font-size:.78rem; color:var(--trust); opacity:.85; }
.mvault__body{ margin-top:12px; }
.mvault__loading,.mvault__note{ font-size:.86rem; color:var(--ink-soft); margin:0; }
.mvault__stat{ display:flex; align-items:baseline; gap:8px; }
.mvault__amt{ font-size:clamp(1.6rem,6vw,2.1rem); font-weight:800; color:var(--trust); text-shadow:var(--glow-trust); font-variant-numeric:tabular-nums; }
.mvault__unit{ font-size:.82rem; font-weight:700; color:var(--ink); letter-spacing:.02em; }
.mvault__meta{ display:flex; gap:14px; margin:6px 0 12px; font-size:.8rem; color:var(--cyan); font-weight:700; }
.mvault__stake{ display:inline-flex; width:100%; justify-content:center; margin-top:4px; }
.mvault__foot{ margin:10px 0 0; font-size:.74rem; color:var(--ink-soft); line-height:1.5; }

/* ── the Coordination Receipt (the paycheck as verifiable proof) ── */
.mrcpt{ position:fixed; inset:0; z-index:1200; display:flex; align-items:center; justify-content:center; padding:16px;
  opacity:0; pointer-events:none; transition:opacity .22s ease; }
.mrcpt.on{ opacity:1; pointer-events:auto; }
.mrcpt__scrim{ position:absolute; inset:0; background:rgba(4,7,14,.72); }
.mrcpt__card{ position:relative; width:min(520px,100%); max-height:88vh; overflow:auto; padding:22px;
  border-radius:var(--r-lg,20px); border:1px solid var(--glass-line);
  background:var(--glass-1,#0b1220); box-shadow:0 24px 60px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.06);
  transform:translateY(14px) scale(.98); transition:transform .24s cubic-bezier(.2,.8,.2,1); }
.mrcpt.on .mrcpt__card{ transform:none; }
.mrcpt__head{ display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.mrcpt__seal{ font-size:1.5rem; color:var(--trust); text-shadow:var(--glow-trust); }
.mrcpt__title{ margin:0; font-weight:800; font-size:1.1rem; color:var(--ink); }
.mrcpt__sub{ margin:2px 0 0; font-size:.82rem; color:var(--trust); font-variant-numeric:tabular-nums; }
.mrcpt__x{ margin-left:auto; background:none; border:0; color:var(--ink-soft); font-size:1.1rem; cursor:pointer; padding:4px 8px; }
.mrcpt__x:hover{ color:var(--ink); }
.mrcpt__lede{ font-size:.82rem; color:var(--ink-soft); line-height:1.55; margin:0 0 14px; }
.mrcpt__lede b{ color:var(--ink); }
.mrcpt__legs{ display:flex; flex-direction:column; gap:8px; }
.mrcpt__row{ display:grid; grid-template-columns:1fr auto; align-items:center; gap:6px 12px;
  padding:10px 12px; border-radius:var(--r-sm,12px); border:1px solid var(--glass-line); background:var(--glass-3); }
.mrcpt__who{ font-weight:700; color:var(--ink); font-size:.86rem; }
.mrcpt__who em{ font-style:normal; color:var(--ink-soft); font-weight:600; }
.mrcpt__amt{ color:var(--trust); font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap; }
.mrcpt__addr{ grid-column:1/-1; font-family:ui-monospace,"SFMono-Regular",Menlo,monospace; font-size:.76rem;
  color:var(--cyan); text-decoration:none; border-bottom:1px dotted var(--line-cyan); justify-self:start; }
.mrcpt__addr:hover{ color:var(--ink); }
.mrcpt__addr--soft{ color:var(--ink-soft); border-bottom:none; }
.mrcpt__addr--none{ color:var(--ink-soft); border-bottom:none; font-family:inherit; font-style:italic; }
.mrcpt__foot{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; flex-wrap:wrap; }
.mrcpt__exact{ font-size:.78rem; font-weight:700; color:var(--signal,#5ff3c0); }
.mrcpt__share{ font-size:.82rem; font-weight:700; color:var(--trust); text-decoration:none; }
.mrcpt__share:hover{ text-decoration:underline; }

/* ── the Intuition register modal (owner-only, non-custodial) ── */
.mireg__spec{ display:flex; flex-direction:column; gap:6px; margin:0 0 14px; }
.mireg__row{ display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:8px 12px; border-radius:var(--r-sm,10px); border:1px solid var(--glass-line); background:var(--glass-3); }
.mireg__row span{ font-size:.76rem; color:var(--trust); font-weight:700; }
.mireg__row b{ color:var(--ink); font-weight:700; font-size:.86rem; text-align:right; }
.mireg__go{ display:inline-flex; width:100%; justify-content:center; margin:0 0 14px; }
.mireg__label{ display:block; font-size:.78rem; color:var(--ink-soft); margin:0 0 6px; }
.mireg__link{ display:flex; gap:8px; }
.mireg__link input{ flex:1; min-width:0; }

/* ══ THE MOTUSAGENT PROTOCOL — the banner that says "any AI can run this" ══
   Thesis: a value in motion, carried by any mind, paying its makers automatically.
   Voice: Luminous Minimal Glass + one Numinous aura (violet→trust) that drifts
   like a slow tide. Motion held under the threshold — a breath, never a strobe. */
.magent{ position:relative; overflow:hidden; isolation:isolate;
  border:1px solid var(--glass-line); border-radius:var(--r-xl,28px);
  background:linear-gradient(180deg, rgba(177,92,255,.05), rgba(95,243,192,.03) 70%, transparent),
             var(--glass-2);
  box-shadow:var(--rim), var(--elev-2);
  padding:clamp(20px,5vw,32px); margin:0 0 22px; }
/* the drifting aura — one earned light, from meaning, never a flat halo */
.magent__glow{ position:absolute; inset:-40% -20% auto -20%; height:180%; z-index:-1;
  pointer-events:none; opacity:.6;
  background:
    radial-gradient(42% 60% at 22% 12%, rgba(177,92,255,.34), transparent 70%),
    radial-gradient(46% 62% at 84% 6%, rgba(95,243,192,.24), transparent 72%);
  filter:blur(14px);
  animation:magentTide 18s ease-in-out infinite; }
@keyframes magentTide{
  0%,100%{ transform:translate3d(0,0,0) scale(1); opacity:.55; }
  50%{ transform:translate3d(0,3%,0) scale(1.06); opacity:.72; } }
.magent__eyebrow{ font-family:var(--serif); font-size:.74rem; letter-spacing:.16em;
  text-transform:uppercase; font-weight:700; margin:0 0 10px;
  color:var(--violet-bright); text-shadow:0 0 18px rgba(177,92,255,.5); }
.magent__title{ font-family:var(--serif); font-weight:700;
  font-size:clamp(1.34rem,4.4vw,1.86rem); line-height:1.16; letter-spacing:-.01em;
  margin:0 0 12px; color:var(--ink);
  text-shadow:0 0 30px rgba(177,92,255,.22); }
.magent__sub{ font-size:.95rem; line-height:1.62; color:#d6dbec; margin:0 0 18px; max-width:56ch; }
.magent__sub b{ color:var(--ink); font-weight:700; }
.magent__spec{ display:inline-block; margin-top:2px;
  font-family:var(--mono); font-size:.72rem; letter-spacing:.04em; white-space:nowrap;
  color:var(--trust); }
.magent__acts{ display:flex; flex-wrap:wrap; gap:10px; }
.magent__acts .pill{ font-size:.86rem; }
@media (prefers-reduced-motion:reduce){ .magent__glow{ animation:none; } }

/* ══ THE BELIEF LEDGER — $TRUST staked FOR vs AGAINST (the honesty rail) ══
   Meaning: belief and doubt, both money-backed, weighed against each other in
   the open. FOR is trust-green (regeneration), AGAINST is warn-amber (honest
   friction). The bar IS the conviction — the gap between them is the truth. */
.belief{ margin:2px 0 12px; }
.belief__row{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.belief__side{ display:flex; flex-direction:column; gap:2px; padding:12px 13px; border-radius:var(--r-md,16px); border:1px solid var(--glass-line); background:var(--glass-3); }
.belief__side--for{ border-color:var(--line-trust,rgba(95,243,192,.3)); background:rgba(95,243,192,.05); }
.belief__side--against{ border-color:rgba(255,138,120,.28); background:rgba(255,138,120,.04); }
.belief__amt{ font-family:var(--serif,"Sora"); font-weight:700; font-size:1.34rem; line-height:1; font-variant-numeric:tabular-nums; color:var(--ink); }
.belief__side--for .belief__amt{ color:var(--trust,#5ff3c0); text-shadow:0 0 18px rgba(95,243,192,.35); }
.belief__side--against .belief__amt{ color:#ff9d86; text-shadow:0 0 16px rgba(255,138,120,.3); }
.belief__lab{ font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:var(--ink-soft); }
.belief__pos{ font-size:.72rem; color:var(--ink-mute); }
.belief__bar{ position:relative; height:8px; border-radius:99px; margin:12px 0 7px; overflow:hidden;
  background:linear-gradient(90deg, rgba(255,138,120,.18), rgba(255,138,120,.22)); border:1px solid var(--glass-line); }
.belief__fill{ position:absolute; inset:0 auto 0 0; border-radius:99px;
  background:linear-gradient(90deg, var(--trust,#5ff3c0), var(--trust-soft,#b6ffe6));
  box-shadow:0 0 14px rgba(95,243,192,.5); transition:width .7s cubic-bezier(.4,0,.2,1); }
.belief__ratio{ font-size:.78rem; color:var(--ink-soft); margin:0; font-weight:600; }
.belief__risk{ display:inline-block; margin-left:6px; padding:1px 8px; border-radius:99px; font-size:.68rem; font-weight:700;
  letter-spacing:.03em; text-transform:uppercase; border:1px solid var(--glass-line); background:var(--glass-3); }
.belief__risk--trusted{ color:var(--trust,#5ff3c0); border-color:var(--line-trust,rgba(95,243,192,.3)); }
.belief__risk--contested{ color:var(--cyan-soft,#8af6ff); border-color:var(--line-cyan,rgba(61,242,255,.28)); }
.belief__risk--disputed{ color:#ffcf70; border-color:rgba(255,207,112,.32); }
.belief__risk--underwater{ color:#ff9d86; border-color:rgba(255,138,120,.34); }
.belief__risk--unproven{ color:var(--ink-mute); }
.belief__atom--vault{ color:var(--trust,#5ff3c0); border-color:var(--line-trust,rgba(95,243,192,.3)); }
.mdetail__rcpt{ color:var(--cyan-soft,#8af6ff); text-decoration:none; font-size:.78rem; border-bottom:1px dotted var(--line-cyan,rgba(61,242,255,.28)); margin-left:4px; }
.mdetail__rcpt:hover{ color:var(--cyan,#3df2ff); }

/* ══ THE $TRUST WALLET PANEL — connect + sign in, front and center on /model ══ */
.walletpanel{ position:relative; border:1px solid var(--line-trust,rgba(95,243,192,.28)); border-radius:var(--r-xl,28px);
  background:linear-gradient(180deg, rgba(95,243,192,.05), transparent 70%), var(--glass-2); box-shadow:var(--rim), var(--elev-2);
  padding:clamp(18px,4.5vw,28px); margin:0 0 22px; }
.walletpanel__eyebrow{ font-family:var(--serif,"Sora"); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700;
  color:var(--trust,#5ff3c0); text-shadow:0 0 16px rgba(95,243,192,.45); margin:0 0 6px; }
.walletpanel__title{ font-family:var(--serif,"Sora"); font-weight:700; font-size:clamp(1.2rem,4vw,1.56rem); line-height:1.16; margin:0 0 8px; color:var(--ink); }
.walletpanel__sub{ font-size:.9rem; line-height:1.56; color:#d6dbec; margin:0 0 16px; max-width:56ch; }
.walletpanel__sub b{ color:var(--ink); font-weight:700; }
.walletpanel__note{ display:inline-block; margin-top:2px; font-size:.8rem; color:var(--trust,#5ff3c0); font-weight:600; }
.walletpanel__row{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.walletpanel__connect{ font-size:.94rem; }
.walletpanel__connect--on{ border-color:var(--trust,#5ff3c0); }
.walletpanel__status{ font-size:.86rem; color:var(--ink-soft); }
.walletpanel__chip{ display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:99px; font-family:var(--mono);
  font-size:.78rem; color:var(--trust,#5ff3c0); border:1px solid var(--line-trust,rgba(95,243,192,.3)); background:rgba(95,243,192,.06); }
.belief__acts{ display:flex; gap:9px; margin:12px 0 10px; }
.belief__acts .pill{ flex:1; justify-content:center; }
.belief__atoms{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:4px 0 10px; }
.belief__atomk{ font-size:.7rem; color:var(--ink-mute); margin-right:2px; }
.belief__atom{ display:inline-flex; align-items:center; gap:4px; padding:3px 9px; border-radius:99px;
  border:1px solid var(--glass-line); background:var(--glass-3); color:var(--cyan-soft); text-decoration:none;
  font-size:.72rem; font-family:var(--mono); max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.belief__atom:hover{ border-color:var(--line-cyan); }
.belief__atom--triple{ color:var(--violet-bright); border-color:var(--line-violet); }

/* ── the stake sheet (reuses the .mrcpt modal frame) ── */
.mstake__body{ padding:2px; }
.mstake__amt{ display:flex; align-items:center; gap:8px; margin:6px 0 10px; }
.mstake__amt .input{ flex:1; min-width:0; font-size:1.2rem; font-family:var(--serif,"Sora"); }
.mstake__cur{ font-family:var(--mono); font-size:.82rem; color:var(--trust,#5ff3c0); font-weight:700; }
.mstake__quick{ display:flex; gap:7px; margin:0 0 14px; }
.mstake__q{ flex:1; justify-content:center; font-family:var(--mono); }
.mstake__wallet{ font-size:.78rem; color:var(--ink-soft); margin:0 0 12px; }
.mstake__go{ display:inline-flex; width:100%; justify-content:center; font-size:.94rem; }
.mstake__err{ color:#ff9d86 !important; }
.mstake--against .mrcpt__seal{ color:#ff9d86; }

/* ════ USD ⇄ ASSET amount entry (both directions, one truth) ════ */
.mx__amthead{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:8px; }
.mx__unit{ display:inline-flex; gap:2px; padding:3px; border-radius:14px; background:rgba(10,16,36,.6);
  border:1px solid rgba(123,227,234,.22); }
.mx__unit button{ appearance:none; border:0; cursor:pointer; padding:7px 14px; border-radius:11px;
  background:transparent; color:#cfd8ea; font:600 13px/1 'Space Grotesk',system-ui,sans-serif;
  letter-spacing:.04em; transition:background .2s ease, color .2s ease; }
.mx__unit button:hover{ color:#fff; }
.mx__unit button[aria-pressed="true"]{ background:linear-gradient(135deg,#17b8d4,#22D3EE); color:#04222b; }
.mx__conv{ margin:9px 2px 0; min-height:1.2em; font-size:.88rem; line-height:1.5; color:#9fb4d8;
  opacity:0; transform:translateY(-3px); transition:opacity .3s ease, transform .3s ease; }
.mx__conv--on{ opacity:1; transform:none; }
.mx__conv b{ color:#eaf6ff; font-weight:700; }
.mx__conv-sep{ color:#8fb8d8; }

/* ── THE WAY OUT — quiet until you need it, never hidden ── */
.mx__cancel{ display:block; margin:14px auto 0; padding:9px 20px; border-radius:18px;
  font-family:var(--display); font-weight:600; font-size:.74rem; letter-spacing:.03em;
  color:var(--cyan-soft); background:rgba(8,13,22,.5); cursor:pointer;
  border:1px solid rgba(160,180,210,.22);
  -webkit-backdrop-filter:blur(10px) saturate(160%); backdrop-filter:blur(10px) saturate(160%);
  transition:border-color .25s ease, color .25s ease, box-shadow .25s ease; }
.mx__cancel:hover{ border-color:rgba(255,150,150,.5); color:#ffd7d7; box-shadow:0 0 20px -8px rgba(255,120,120,.55); }
.mx__cancel:active{ transform:scale(.97); }
.mx__cancel[disabled]{ opacity:.6; cursor:progress; }
.mx__cancelnote{ margin:8px auto 0; max-width:34ch; text-align:center; font-size:.76rem; color:var(--cyan-soft); }

/* ── THE MINT FEE — a payment screen shows the WHOLE address, always ── */
.mintfee{ display:flex; flex-direction:column; align-items:center; gap:9px; text-align:center; }
.mintfee__amt{ font-family:var(--display); font-size:1.02rem; color:var(--ink); }
.mintfee__to{ font-size:.76rem; color:var(--cyan-soft); margin:0; }
.mintfee__addr{ display:block; width:100%; max-width:100%; padding:9px 11px; border-radius:12px;
  font-family:ui-monospace, monospace; font-size:.74rem; line-height:1.5;
  color:var(--ink); background:rgba(8,13,22,.6); border:1px solid rgba(160,180,210,.2);
  word-break:break-all; user-select:all; }
.mintfee__warn{ font-size:.76rem; color:#ffd7a8; margin:0; }
/* THE EXACT-AMOUNT NOTE. Not a warning — a small act of transparency about the
   odd last digits, so a fingerprint reads as care rather than a rounding bug.
   Soft aura, never a highlight slab. */
.mintfee__exact{ margin:0; max-width:38ch; font-size:.75rem; line-height:1.55; color:var(--ink);
  padding:8px 12px; border-radius:14px;
  background:radial-gradient(120% 140% at 50% 0%, rgba(61,242,255,.11), rgba(61,242,255,0) 72%);
  border:1px solid rgba(61,242,255,.16); }
.mintfee__exact b{ color:#7ef3ff; }
.mintfee__custody{ font-size:.72rem; color:var(--cyan-soft); margin:0; max-width:42ch; }
.mintfee__lbl{ font-size:.76rem; color:var(--cyan-soft); margin-top:4px; }
.mintfee__txid{ width:100%; padding:9px 11px; border-radius:12px;
  font-family:ui-monospace, monospace; font-size:.74rem; color:var(--ink);
  background:rgba(8,13,22,.6); border:1px solid rgba(160,180,210,.22); }
.mintfee__txid:focus{ outline:none; border-color:rgba(61,242,255,.5); box-shadow:0 0 18px -8px rgba(61,242,255,.6); }
.mintfee__state{ font-size:.78rem; color:var(--ink); margin:0; max-width:42ch; }
@media (prefers-reduced-motion:reduce){ .mx__cancel{ transition:none; } .mx__cancel:active{ transform:none; } }

/* THE ALL-IN COST line — quiet when the crossing is healthy, warm-amber when
   fixed costs are eating a real share of it. Never red: this is guidance, not
   an error. (2026-08-08, after a real 58% loss on a too-small crossing.) */
.mx__row--warn dd{ color:#ffd166; }
.mx__row--warn dt{ color:#ffd9a0; }
