/* Appdrop theme. Tokens + components. See design/DESIGN.md.
   Fonts: load Instrument Sans + Martian Mono from Google Fonts in the page head. */
/* Martian Mono from our own origin, under its own family name, second in --ent-mono: pages whose policy allows our
   origin only (/verify, /sig, /recover) get the real face instead of system mono, so the shared top bar reads the same
   there (operator 2026-10-09: one header on every page). Pages that load Google Fonts use theirs and never fetch this.
   Latin subset of the variable font, SIL OFL 1.1 (public/ent/fonts/LICENSE). */
@font-face{font-family:"Appdrop Mono";font-style:normal;font-weight:400 600;font-stretch:75% 112.5%;font-display:swap;
  src:url("/ent/fonts/martian-mono-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  color-scheme:light;
  /* Appdrop brand package (operator 2026-10-14): navy neutrals, brand blue #2857F4 for primary actions, active state and
     focus only; mint #21C58B is the pump.fun app, indigo #516AF6 is FOMO. */
  --ent-plate:#F5F7FA;
  --ent-sheet:#FFFFFF;
  --ent-sheet-2:#EEF2F7;
  --ent-hover:#E6ECF3;
  --ent-ink:#101827;
  --ent-ink-2:#334155;
  --ent-ink-3:#64748B;
  --ent-rule:#E1E7EF;
  --ent-rule-strong:#D3DBE6;
  --ent-ion:#2857F4;
  --ent-ion-soft:rgba(40,87,244,.08);
  --ent-ion-ink:#1D49E0;
  --ent-photon:#0E9F6E;
  --ent-photon-soft:rgba(14,159,110,.16);
  --ent-photon-ink:#087A54;
  --ent-ok:#1E7F4F;
  --ent-bad:#C2304A;
  --ent-on-ink:#FFFFFF;
  --ent-on-ion:#FFFFFF;
  --ent-lift:none;

  --ent-font:Inter,"Instrument Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --ent-mono:"Martian Mono","Appdrop Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --ent-fs-1:13px;--ent-fs-2:15px;--ent-fs-3:17px;--ent-fs-4:21px;
  --ent-fs-5:clamp(26px,2.2vw + 16px,34px);
  --ent-fs-6:clamp(40px,5.4vw + 14px,76px);
  --ent-r-chip:6px;--ent-r-ctl:9px;--ent-r-panel:12px;   /* brand refresh 2026-10-11: restrained rounded corners */
  --ent-gutter:16px;--ent-max:1180px;
  /* Outline weights (operator 2026-10-10: "the outline of the boxes needs to be ever so slightly reduced"), one step
     thinner than before. On 2x and denser screens the box and rule lines are a hairline (0.5px, one device pixel); on
     1x screens 0.5px would vanish or blur, so they stay 1px there. Focus rings are not outlines of boxes and stay 2px.
       --ent-bw-box     ink outlines of boxes, buttons, inputs, the bar's rules   (was 1px)
       --ent-bw-rule    light dividers in --ent-rule / --ent-rule-strong          (was 1px)
       --ent-bw-strong  what used to be 1.5px                                      (now 1px)
       --ent-bw-emph    emphasis edges that used to be 2px                         (now 1.5px) */
  --ent-bw-box:1px;--ent-bw-rule:1px;--ent-bw-strong:1px;--ent-bw-emph:1.5px;
  /* Chrome (154, measured) draws any border or outline under 1px as a full 1px, 2 device pixels on a 2x screen, so the
     0.5px hairline above only reaches Safari and Firefox. The box outline colour is therefore a touch lighter than the
     ink as well, which reads as a thinner line in every browser. Text, fills and focus rings keep the full ink. */
  --ent-line:#D3DBE6;
  --ent-btn:#2857F4;
}
@media (min-resolution:2dppx),(-webkit-min-device-pixel-ratio:2){:root{--ent-bw-box:.5px;--ent-bw-rule:.5px}}
@media (min-width:720px){:root{--ent-gutter:32px}}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --ent-plate:#0B121C;--ent-side:#0A1018;--ent-sheet:#121E2B;--ent-sheet-2:#192838;--ent-hover:#1F3043;
    --ent-ink:#F5F8FC;--ent-ink-2:#C3CDDA;--ent-ink-3:#A0AEC1;
    --ent-rule:#1B2836;--ent-rule-strong:#273747;
    --ent-ion:#2857F4;--ent-ion-soft:rgba(40,87,244,.16);--ent-ion-ink:#8AA8FF;
    --ent-photon:#21C58B;--ent-photon-soft:rgba(33,197,139,.16);--ent-photon-ink:#3DDCA0;
    --ent-ok:#4CC38A;--ent-bad:#F07A8C;
    --ent-on-ink:#0B121C;--ent-on-ion:#FFFFFF;--ent-line:#273747;--ent-btn:#2857F4;
    --ent-lift:none;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --ent-plate:#0B121C;--ent-side:#0A1018;--ent-sheet:#121E2B;--ent-sheet-2:#192838;--ent-hover:#1F3043;
  --ent-ink:#F5F8FC;--ent-ink-2:#C3CDDA;--ent-ink-3:#A0AEC1;
  --ent-rule:#1B2836;--ent-rule-strong:#273747;
  --ent-ion:#2857F4;--ent-ion-soft:rgba(40,87,244,.16);--ent-ion-ink:#8AA8FF;
  --ent-photon:#21C58B;--ent-photon-soft:rgba(33,197,139,.16);--ent-photon-ink:#3DDCA0;
  --ent-ok:#4CC38A;--ent-bad:#F07A8C;
  --ent-on-ink:#0B121C;--ent-on-ion:#FFFFFF;--ent-line:#273747;--ent-btn:#2857F4;
  --ent-lift:none;
}

/* ---------- base (opt in with class="ent" on <body>) ---------- */
body.ent{margin:0;background:var(--ent-plate);color:var(--ent-ink);font-family:var(--ent-font);
  font-size:var(--ent-fs-3);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.ent *,.ent *::before,.ent *::after{box-sizing:border-box}
.ent a:not(.ent-btn){color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}
.ent a:not(.ent-btn):hover{color:var(--ent-ion-ink)}
.ent :focus-visible{outline:2px solid var(--ent-ion);outline-offset:2px;border-radius:4px}
.ent ::selection{background:var(--ent-ion);color:var(--ent-on-ion)}
.ent h1,.ent h2,.ent h3{font-stretch:78%;font-variation-settings:"wdth" 78;font-weight:640;letter-spacing:-.012em;margin:0;text-wrap:balance}
.ent h1{font-size:var(--ent-fs-6);line-height:1.02;letter-spacing:-.022em}
.ent h2{font-size:var(--ent-fs-5);line-height:1.1}
.ent h3{font-size:var(--ent-fs-4);line-height:1.2;font-stretch:88%;font-variation-settings:"wdth" 88;font-weight:620}
.ent p{margin:0;max-width:68ch;text-wrap:pretty}
.ent-lead{font-size:var(--ent-fs-4);line-height:1.45;color:var(--ent-ink-2);max-width:56ch}
.ent-small{font-size:var(--ent-fs-1);color:var(--ent-ink-3);line-height:1.5}
.ent-mono{font-family:var(--ent-mono);font-size:.82em;font-variation-settings:"wdth" 90;letter-spacing:0}
.ent-wrap{max-width:var(--ent-max);margin:0 auto;padding:0 var(--ent-gutter)}
.ent-visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- buttons ---------- */
.ent-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;
  border-radius:var(--ent-r-ctl);border:var(--ent-bw-strong) solid transparent;font:600 var(--ent-fs-2)/1 var(--ent-font);
  text-decoration:none;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s;white-space:nowrap}
.ent .ent-btn--primary,.ent-btn--primary{background:var(--ent-btn);color:var(--ent-on-ion)}
.ent .ent-btn--primary:hover{background:#1D49E0;color:var(--ent-on-ion)}
.ent .ent-btn--quiet,.ent-btn--quiet{background:transparent;color:var(--ent-ink);border-color:var(--ent-rule-strong)}
.ent .ent-btn--quiet:hover{border-color:var(--ent-ink);color:var(--ent-ink)}
.ent .ent-btn--seal,.ent-btn--seal{background:var(--ent-ion);color:var(--ent-on-ion)}
.ent .ent-btn--seal:hover{background:#1D49E0;color:var(--ent-on-ion)}
.ent-btn:disabled,.ent-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
.ent-btn--sm{min-height:36px;padding:0 12px;font-size:var(--ent-fs-1)}

/* ---------- chips ---------- */
.ent-chip{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:0 12px;border-radius:var(--ent-r-chip);
  border:var(--ent-bw-rule) solid var(--ent-rule-strong);background:var(--ent-sheet);font-size:var(--ent-fs-1);color:var(--ent-ink-2);max-width:100%}
.ent-chip--ca{padding-right:4px}
.ent-chip--ca .ent-mono{color:var(--ent-ink)}
.ent-chip button{font:600 var(--ent-fs-1)/1 var(--ent-font);color:var(--ent-ion-ink);background:var(--ent-ion-soft);border:0;
  border-radius:var(--ent-r-chip);min-height:26px;padding:0 10px;cursor:pointer}
.ent-chip--soon{color:var(--ent-photon-ink);border-color:var(--ent-photon);background:var(--ent-photon-soft)}

/* ---------- panel ---------- */
.ent-panel{background:var(--ent-sheet);border:var(--ent-bw-rule) solid var(--ent-rule);border-radius:var(--ent-r-panel);padding:20px}

/* ---------- sealed badge ---------- */
.ent-sealed{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:0 10px 0 7px;border-radius:var(--ent-r-chip);
  background:var(--ent-ion-soft);color:var(--ent-ion-ink);font:600 12px/1 var(--ent-font)}
.ent-sealed::before{content:"";width:12px;height:11px;flex:none;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 11'%3E%3Cpath d='M6 2.2 2 8.6M6 2.2l4 6.4' stroke='%23000' stroke-width='1.4' fill='none'/%3E%3Ccircle cx='6' cy='2.2' r='2.2'/%3E%3Ccircle cx='2' cy='8.6' r='2'/%3E%3Ccircle cx='10' cy='8.6' r='2'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 11'%3E%3Cpath d='M6 2.2 2 8.6M6 2.2l4 6.4' stroke='%23000' stroke-width='1.4' fill='none'/%3E%3Ccircle cx='6' cy='2.2' r='2.2'/%3E%3Ccircle cx='2' cy='8.6' r='2'/%3E%3Ccircle cx='10' cy='8.6' r='2'/%3E%3C/svg%3E") center/contain no-repeat}
.ent-sealed--agent{background:transparent;border:var(--ent-bw-rule) solid var(--ent-rule-strong);color:var(--ent-ink-3)}
.ent-sealed--agent::before{opacity:.6}

/* ---------- vault state ---------- */
.ent-vault{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;font-size:var(--ent-fs-2);color:var(--ent-ink)}
.ent-vault__dot{width:10px;height:10px;border-radius:50%;flex:none;background:var(--ent-ion)}
.ent-vault.is-pending .ent-vault__dot{background:transparent;border:var(--ent-bw-emph) dashed var(--ent-ion)}
.ent-vault.is-agent .ent-vault__dot{background:var(--ent-ink-3)}
.ent-vault.is-agent{color:var(--ent-ink-2)}
.ent-vault.is-successor .ent-vault__dot{background:transparent;border:var(--ent-bw-emph) solid var(--ent-photon)}
.ent-keys{display:grid;grid-template-columns:repeat(10,1fr);gap:3px;width:120px;height:6px}
.ent-keys i{background:var(--ent-ion);border-radius:2px}
.ent-keys i.used{background:var(--ent-rule-strong)}

/* ---------- flywheel meter ---------- */
.ent-flywheel{display:grid;gap:10px}
.ent-flywheel__bar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--ent-sheet-2)}
.ent-flywheel__bar > span{display:block;height:100%}
.ent-flywheel__bar .fee{background:var(--ent-photon)}
.ent-flywheel__bar .creator{background:var(--ent-ion)}
.ent-flywheel__bar .burn{background:var(--ent-photon)}
.ent-flywheel__bar .treasury{background:var(--ent-ink-3)}
.ent-flywheel__legend{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:var(--ent-fs-1);color:var(--ent-ink-2)}
.ent-flywheel__legend b{font-family:var(--ent-mono);font-weight:500;color:var(--ent-ink);font-variation-settings:"wdth" 90}
.ent-swatch{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}

/* ---------- steps ---------- */
.ent-steps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;gap:0}
.ent-steps > li{counter-increment:s;position:relative;padding:0 0 28px 52px}
.ent-steps > li::before{content:counter(s);position:absolute;left:0;top:-2px;width:34px;height:34px;border-radius:50%;
  display:grid;place-items:center;border:var(--ent-bw-strong) solid var(--ent-ink);font:600 15px/1 var(--ent-font);background:var(--ent-plate)}
.ent-steps > li::after{content:"";position:absolute;left:16.5px;top:34px;bottom:2px;width:var(--ent-bw-strong);background:var(--ent-rule-strong)}
.ent-steps > li:last-child{padding-bottom:0}
.ent-steps > li:last-child::after{display:none}
.ent-steps h3{margin-bottom:6px}
.ent-steps p{color:var(--ent-ink-2)}

/* ---------- compare table ---------- */
.ent-compare{width:100%;border-collapse:collapse;font-size:var(--ent-fs-2)}
.ent-compare th,.ent-compare td{text-align:left;vertical-align:top;padding:14px 16px 14px 0;border-top:var(--ent-bw-rule) solid var(--ent-rule)}
.ent-compare thead th{border-top:0;font-weight:600;color:var(--ent-ink-3);font-size:var(--ent-fs-1);padding-bottom:8px}
.ent-compare tbody th{font-weight:600;width:28%}
.ent-compare td{color:var(--ent-ink-2);width:36%}
.ent-compare td.is-ent{color:var(--ent-ink)}
@media (max-width:640px){
  .ent-compare thead{display:none}
  .ent-compare tr{display:grid;grid-template-columns:1fr;border-top:var(--ent-bw-rule) solid var(--ent-rule);padding:14px 0}
  .ent-compare th,.ent-compare td,.ent-compare tbody th{border:0;padding:3px 0;width:auto}
  .ent-compare td::before{content:attr(data-h);display:block;font-size:var(--ent-fs-1);color:var(--ent-ink-3)}
}

/* ---------- site header / footer used by brand.js pages ---------- */
.ent-logo{display:inline-flex;align-items:center;gap:9px;text-decoration:none;color:var(--ent-ink);font:650 20px/1 var(--ent-font);
  font-stretch:88%;font-variation-settings:"wdth" 88;letter-spacing:-.01em}
.ent-logo svg{width:26px;height:26px;flex:none}
.ent-theme-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--ent-r-ctl);border:var(--ent-bw-rule) solid var(--ent-rule-strong);
  background:transparent;color:var(--ent-ink);cursor:pointer;padding:0}
.ent-theme-btn svg{width:18px;height:18px}
.ent-foot{border-top:var(--ent-bw-rule) solid var(--ent-rule);padding-top:28px;padding-bottom:40px;font-size:var(--ent-fs-1);color:var(--ent-ink-3)}
.ent-foot nav{display:flex;flex-wrap:wrap;gap:6px 18px;margin-bottom:12px}
.ent-foot a{color:var(--ent-ink-2)}

@media (prefers-reduced-motion:reduce){.ent *{transition:none!important;animation:none!important}}
.ent-visually-hidden:focus{position:fixed!important;left:12px;top:12px;width:auto;height:auto;clip:auto;padding:10px 14px;background:var(--ent-ink);color:var(--ent-on-ink);border-radius:var(--ent-r-ctl);z-index:100}
.ent-vault.is-derived .ent-vault__dot{background:transparent;border:var(--ent-bw-emph) solid var(--ent-photon)}
.ent-vault.is-derived{color:var(--ent-photon-ink)}

/* ══ One look for the whole site (operator 2026-10-09: "all these pages need to be in the same look and feel as we made the
   explore page"). Square and flat everywhere this sheet loads: no radius, no shadow, no blur; a surface is a 1px ink
   box on the plate; Martian Mono for what a terminal would print (labels, nav, buttons, stats, addresses, numbers),
   Instrument Sans for headlines and prose; buttons are ink blocks that invert on hover; focus is a 2px solid edge.
   The blanket rule is deliberate: components across the site carry literal radii and shadows, and one rule here
   replaces per-page overrides. A spinner is the one round thing left. ══ */
/* Appdrop brand package (2026-10-14): the blanket square corners are retired (cards ~12px, controls ~9px); only glows
   stay off. */
*,*::before,*::after{box-shadow:none!important}
.spinner{border-radius:50%!important}
.ent :focus-visible,#ent-wallet-sheet :focus-visible{outline:2px solid var(--ent-ink)!important;outline-offset:2px}

/* type */
.ent :is(.ent-btn,.ent-chip,.ent-navlink,.ent-sealed,.ent-flywheel__legend,.ent-small,.ent-foot,.ent-logo,th,dt,label,summary,input,select,textarea,button,.ent-steps > li::before),
#ent-wallet-sheet :is(.ew-row,.ew-x,.ew-other,.ew-tag,h2){font-family:var(--ent-font);font-variation-settings:normal;font-stretch:normal;letter-spacing:0}
.ent :is(code,kbd,.ent-mono){font-family:var(--ent-mono);font-variation-settings:"wdth" 82;font-stretch:normal;letter-spacing:0}
.ent :is(.ent-btn,.ent-navlink){font-size:12.5px;font-weight:500}
.ent :is(th,dt,label,.ent-small){font-size:12px}
.ent-logo{font:700 19px/1 var(--ent-font)!important;font-variation-settings:normal!important;letter-spacing:-.02em!important}

/* boxes */
.ent :is(.ent-panel,.ent-chip,.ent-sealed,input,select,textarea,table,figure){border:var(--ent-bw-box) solid var(--ent-line);background-image:none}
.ent :is(input,select,textarea){background:var(--ent-sheet);color:var(--ent-ink);min-height:44px}
.ent :is(th,td){border-color:var(--ent-ink)}
.ent-sealed{border-color:currentColor}
.ent-btn{min-height:44px;border:var(--ent-bw-box) solid var(--ent-line)!important;background:var(--ent-sheet);color:var(--ent-ink);background-image:none!important}
.ent-btn:hover:not(:disabled){background:var(--ent-btn)!important;color:var(--ent-on-ion)!important}
.ent-btn--primary{background:var(--ent-btn)!important;color:var(--ent-on-ion)!important}
.ent-btn--primary:hover:not(:disabled){background:var(--ent-sheet)!important;color:var(--ent-ink)!important}
.ent-btn--sm{min-height:44px}
.ent-theme-btn{width:44px;height:44px;border:var(--ent-bw-box) solid var(--ent-line);background:var(--ent-sheet)}
.ent-theme-btn:hover{background:var(--ent-ink);color:var(--ent-on-ink)}
.ent-flywheel__bar{height:14px;border:var(--ent-bw-box) solid var(--ent-line);background:var(--ent-plate)}
.ent-swatch{width:10px;height:10px}
.ent-steps > li::before{border:var(--ent-bw-box) solid var(--ent-line);background:var(--ent-sheet)}

/* ══ The top bar: ONE bar on every page (operator 2026-10-09, hard rule: "the header changes depending on what page
   you're on, for instance on the DOCS page it moves. It should be the same across all pages.").
   Three hosts carry it: static pages (header.ent-bar, written by /ent-shell.js), Explore (header.top > .wrap) and the
   app (.topbar). This block alone sets its geometry, so a page's own sheet cannot move it: the html:root body prefix and
   the !important flags outrank the inherited Kickback/ORO sheets and the pages' generic header rules.
     row 1: logo | links (1024 px and up) | token chip, theme toggle, Connect wallet or the account chip. The logo and the
            links are 44px boxes, 8px above and below, so the bar is 61px with its rule; the controls are smaller 36px
            boxes centred on that row (operator 2026-10-10: "the connect wallet button and light mode button need to be
            reduced in size");
     row 2 (under 1024 px): the links on their own full-width row under a rule, 44px tall, wrapping only if a phone is
            too narrow for all of them. scripts/qa/header-check.cjs holds every page to /explore within 1px. ══ */
html:root:root body :is(header.ent-bar,header.top,.topbar){position:sticky!important;top:0!important;z-index:30!important;background:var(--ent-plate)!important;
  border:0!important;border-bottom:var(--ent-bw-box) solid var(--ent-line)!important;overflow-x:clip;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html:root body :is(header.ent-bar,header.top){display:block!important;padding:0!important;margin:0!important;min-height:0!important}
/* The bar's height, for anything that sticks or scrolls to an anchor under it (it is sticky on every page now, docs too). */
:root{--ent-bar-h:61px}
@media (max-width:1023px){:root{--ent-bar-h:106px}}
html{scroll-padding-top:calc(var(--ent-bar-h) + 8px)}
html:root body .hl-toc{top:var(--ent-bar-h)!important}
html:root body header.ent-bar:empty{min-height:61px!important}
@media (max-width:1023px){html:root body header.ent-bar:empty{min-height:106px!important}}
html:root body :is(header.ent-bar > .ent-bar__in,header.top > .wrap,.topbar){display:flex!important;flex-wrap:wrap!important;align-items:center!important;justify-content:flex-start!important;
  column-gap:8px!important;row-gap:0!important;min-height:0!important;padding:8px 16px!important;box-sizing:border-box;max-width:none!important;width:auto}
/* Full width with one gutter on every page, so the logo and the controls never shift sideways between pages either
   (the static pages' 1180 px column put the logo 54 px further in than Explore's). */
@media (min-width:720px){html:root body :is(header.ent-bar > .ent-bar__in,header.top > .wrap,.topbar){padding-left:28px!important;padding-right:28px!important}}
html:root body :is(.ent-bar,header.top,.topbar) .topbar-left{order:1;flex:0 0 auto!important;display:flex!important;align-items:center!important;gap:0!important;min-width:0;margin:0!important}
html:root body :is(.ent-bar,header.top,.topbar) .topbar-right{order:3;flex:0 0 auto!important;display:flex!important;align-items:center!important;gap:8px!important;margin:0 0 0 auto!important;position:relative}

/* logo: one 44px box, wordmark on the links' baseline */
html:root body :is(.ent-bar,header.top,.topbar) .tb-wm{display:inline-flex!important;align-items:center;height:44px;margin:0;padding:0}
html:root body :is(.ent-bar,header.top,.topbar) .ent-logo{display:inline-flex;align-items:center;gap:9px;height:44px;margin:0;padding:0;color:var(--ent-ink)!important;text-decoration:none!important;
  font:600 17px/1 var(--ent-mono)!important;font-variation-settings:"wdth" 88!important;letter-spacing:0!important}
html:root body :is(.ent-bar,header.top,.topbar) .ent-logo svg{display:block;width:26px;height:26px;flex:none}
html:root body :is(.ent-bar,header.top,.topbar) .ent-logo span{display:inline-block;line-height:1}
@media (max-width:420px){html:root body :is(.ent-bar,header.top,.topbar) .ent-logo{font-size:15px!important}html:root body :is(.ent-bar,header.top,.topbar) .ent-logo svg{width:22px;height:22px}}

/* links */
html:root body .ent-topnav{order:2;display:flex!important;align-items:center;flex:1 1 auto;min-width:0;margin:0 0 0 18px!important;padding:0}
html:root body .ent-topnav > a{display:inline-flex;align-items:center;height:44px!important;min-height:44px!important;max-height:44px!important;box-sizing:border-box;padding:0 9px;margin:0!important;border:0;
  background:transparent!important;color:var(--ent-ink-2)!important;font:500 11.5px/1 var(--ent-mono)!important;font-variation-settings:"wdth" 82;letter-spacing:0;text-decoration:none!important;white-space:nowrap;cursor:pointer}
html:root body .ent-topnav > a:hover{color:var(--ent-ink)!important;text-decoration:underline!important;text-underline-offset:4px}
html:root body .ent-topnav > a.is-on{background:var(--ent-ion-soft)!important;color:var(--ent-ion-ink)!important;text-decoration:none!important}
html:root body .ent-topnav > a:focus-visible{outline:2px solid var(--ent-ink);outline-offset:-2px}
html:root body .ent-topnav > a.is-on:focus-visible{outline-color:var(--ent-ion)}
@media (max-width:1199px){html:root body .ent-topnav > a{padding:0 7px}}
/* My coins: only once connected (ent-shell.js sets body.ent-authed). */
.ent-authed-only{display:none!important}
html:root body.ent-authed .ent-topnav > .ent-authed-only{display:inline-flex!important}
body.ent-authed .fd-tabbar .ent-authed-only{display:flex!important}
@media (max-width:1023px){
  /* One row, always 44px whatever font a page ends up with (the offline recovery page has no web font): the links never
     wrap; if a phone is narrower than the row it scrolls sideways inside itself, never the page. My coins stays off this
     row on every page: the account chip (and the app's tab bar) already go there, and with it the row fits a 390 px
     phone. */
  html:root body .ent-topnav{order:4;flex:0 0 100%;flex-wrap:nowrap;justify-content:space-between;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;
    position:relative;margin:8px 0 -8px!important;padding-top:1px}
  html:root body .ent-topnav::-webkit-scrollbar{display:none}
  html:root body .ent-topnav > a{padding:0 4px;font-size:11px!important;flex:none}
  html:root body .ent-topnav > a:first-child{margin-left:-4px!important}
  html:root body.ent-authed .ent-topnav > .ent-authed-only{display:none!important}
}
/* iPhone SE / mini (375) and 360 px phones: the row was 1 and 16 px too wide. Tighter gaps between the links, same type
   size (team-lead 2026-10-10: scroll rather than shrink the type); anything narrower still scrolls inside the row. */
@media (max-width:380px){html:root body .ent-topnav > a{padding:0 2px}html:root body .ent-topnav > a:first-child{margin-left:-2px!important}}
/* the rule above the phone row runs edge to edge whatever the page's column: a line on the bar itself, at the row's top */
@media (max-width:1023px){html:root:root body :is(header.ent-bar,header.top,.topbar){background-image:linear-gradient(var(--ent-line),var(--ent-line))!important;background-size:100% var(--ent-bw-box)!important;background-repeat:no-repeat!important;background-position:0 60px!important}}
/* Explore's bar search button is not part of the one bar: it pushed the theme toggle 52 px left on Explore only. The
   board's own toolbar has the same search button (and "/" still opens it). */
html:root body header.top .topbar-right .hsearch{display:none!important}

/* controls: theme toggle, search (Explore), Connect wallet, account chip: one 36px box each, centred on the 44px row.
   Height only, never display, so a control a page hides stays hidden. */
html:root body :is(.ent-bar,header.top,.topbar) :is(.ent-theme-btn,.hsearch,.who,#who,#fd-signin-btn,#nav-cta,.cta-mini,.active-ind){
  height:36px!important;min-height:36px!important;max-height:36px!important;box-sizing:border-box!important;margin-top:0!important;margin-bottom:0!important;line-height:1!important;align-self:center}
html:root body :is(.ent-bar,header.top,.topbar) [data-ent-theme]{display:inline-flex;align-items:center;height:36px}
html:root body :is(.ent-bar,header.top,.topbar) :is(.ent-theme-btn,.hsearch){width:36px!important;min-width:36px!important;padding:0!important;display:grid;place-items:center;
  border:var(--ent-bw-box) solid var(--ent-line)!important;background:var(--ent-sheet)!important;color:var(--ent-ink)!important;cursor:pointer}
html:root body :is(.ent-bar,header.top,.topbar) :is(.ent-theme-btn,.hsearch) svg{width:16px;height:16px}
html:root body :is(.ent-bar,header.top,.topbar) :is(.ent-theme-btn,.hsearch):hover{background:var(--ent-ink)!important;color:var(--ent-on-ink)!important}
html:root body :is(.ent-bar,header.top,.topbar) :is(#nav-cta,#fd-signin-btn){align-items:center;justify-content:center;gap:0;min-width:128px;padding:0 11px!important;border:var(--ent-bw-box) solid var(--ent-line)!important;background:var(--ent-ink)!important;
  color:var(--ent-on-ink)!important;font:500 12px/1 var(--ent-mono)!important;font-variation-settings:"wdth" 82;letter-spacing:0!important;text-decoration:none!important;white-space:nowrap;cursor:pointer}
html:root body :is(.ent-bar,header.top,.topbar) :is(#nav-cta,#fd-signin-btn):hover{background:var(--ent-sheet)!important;color:var(--ent-ink)!important}
html:root body :is(.ent-bar,header.top,.topbar) :is(#nav-cta,#fd-signin-btn) svg{display:none!important}
html:root body header.ent-bar #nav-cta{display:inline-flex}
html:root body :is(.ent-bar,header.top,.topbar) :is(.who,#who){align-items:center;gap:7px;padding:0 10px!important;border:var(--ent-bw-box) solid var(--ent-line)!important;background:var(--ent-sheet)!important;
  color:var(--ent-ink-2)!important;font:500 11.5px/1 var(--ent-mono)!important;font-variation-settings:"wdth" 82;letter-spacing:0!important;text-decoration:none!important;white-space:nowrap;cursor:pointer}
html:root body header.ent-bar .who{display:inline-flex}
html:root body :is(.ent-bar,header.top,.topbar) .who::before{content:""!important;display:block!important;width:7px!important;height:7px!important;flex:0 0 7px!important;background:var(--ent-ok)!important;box-shadow:none!important;border-radius:0!important}
html:root body :is(.ent-bar,header.top,.topbar) :is(#nav-cta,.who,#who)[hidden]{display:none!important}
html:root body :is(.ent-bar,header.top,.topbar) :is(a,button):focus-visible{outline:2px solid var(--ent-ink)!important;outline-offset:1px}

/* the footer: one link list and one sentence on every page (ent-shell.js writes it into footer[data-ent-foot]) */
html:root body footer.ent-foot{border-top:var(--ent-bw-box) solid var(--ent-line);margin-top:56px;padding-top:28px;padding-bottom:40px;font:400 12px/1.5 var(--ent-mono);font-variation-settings:"wdth" 82;color:var(--ent-ink-3)}
html:root body footer.ent-foot nav{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 12px}
html:root body footer.ent-foot nav a{color:var(--ent-ink-2);text-decoration:none}
html:root body footer.ent-foot nav a:hover{color:var(--ent-ink);text-decoration:underline}
html:root body footer.ent-foot p{margin:0;max-width:68ch}
/* The comparison table is a bordered box now: its cells keep clear of the frame, stacked or not. */
.ent-compare :is(th,td){padding-left:14px!important;padding-right:14px!important}

/* ---------- $APPD address chip in the top bar (public/ent-fees.js mounts it only when the token exists) ----------
   One square 36px box (the same height as the bar's other controls) left of the theme toggle: "$APPD", the short address as a link to the coin page, and a copy
   button. Under 1240px the bar has no room for it next to the logo, the links, the toggle and the account, so the bar copy is
   hidden and the same chip shows on its own full-width row directly under the bar. */
.ent-ca{display:inline-flex;align-items:stretch;height:36px;box-sizing:border-box;border:var(--ent-bw-box) solid var(--ent-line);background:var(--ent-sheet);color:var(--ent-ink);
  font:500 12px/1 var(--ent-mono);font-variation-settings:"wdth" 82;letter-spacing:0;white-space:nowrap;flex:none}
.ent-ca__t{display:inline-flex;align-items:center;padding:0 0 0 10px;color:var(--ent-ink-2)}
.ent-ca__a{display:inline-flex;align-items:center;padding:0 10px 0 8px;color:var(--ent-ink)!important;text-decoration:underline;text-underline-offset:3px;font:inherit!important;height:auto!important;min-height:0!important;max-height:none!important}
.ent-ca__a:hover{color:var(--ent-ion-ink)!important}
.ent-ca__c{display:inline-flex;align-items:center;justify-content:center;min-width:64px;margin:0;padding:0 10px!important;border:0!important;border-left:var(--ent-bw-box) solid var(--ent-line)!important;background:transparent!important;color:var(--ent-ink)!important;
  font:500 12px/1 var(--ent-mono)!important;font-variation-settings:"wdth" 82;cursor:pointer;height:auto!important;min-height:0!important;max-height:none!important}
.ent-ca__c:hover{background:var(--ent-ink)!important;color:var(--ent-on-ink)!important}
.ent-ca :is(a,button):focus-visible{outline:2px solid var(--ent-ink);outline-offset:-2px}
.ent-ca-row{display:none}
@media (max-width:1239px){
  .ent-ca--bar{display:none!important}
  .ent-ca-row{display:block;border-bottom:var(--ent-bw-box) solid var(--ent-line);background:var(--ent-plate)}
  .ent-ca-row .ent-ca{display:flex;width:100%;border:0}
  .ent-ca-row .ent-ca__a{flex:1}
  /* The app's bar sits inside the padded page column with a bottom margin; its row tucks up against it as a box. */
  .topbar + .ent-ca-row{margin:-18px 0 18px;border:var(--ent-bw-box) solid var(--ent-line);border-top:0}
}
@media (min-width:1024px) and (max-width:1239px){.topbar + .ent-ca-row{margin:-26px 0 26px}}

/* ══ Brand refresh 2026-10-11 (operator-approved handoff: geometric mark, refined terminal look) ══════════════════════
   One shell for every page, as before; only its geometry changes. Desktop (1100 px and up): the bar is a fixed left
   sidebar (logo, links with icons, network at the foot) and its controls (token chip, theme, Connect wallet or the
   account chip) sit at the top right of the page. Under 1100 px: a compact sticky header (logo, controls, menu) whose
   menu sheet holds every link; pages without their own bottom bar get Explore / Launch / Vault at the bottom.
   Colours come from the tokens above (light palette unchanged). Corners: the blanket square rule stays for everything
   unnamed; the components below get the radius tokens. */
html:root body .ent-topnav > a[data-nv="explore"],html:root body .ent-bnav a[data-nv="explore"],html:root body .ent-msheet__nav a[data-nv="explore"]{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2211%22%20cy%3D%2211%22%20r%3D%227%22/%3E%3Cpath%20d%3D%22M20%2020l-3.5-3.5%22/%3E%3C/svg%3E")}
html:root body .ent-topnav > a[data-nv="deploy"],html:root body .ent-bnav a[data-nv="deploy"],html:root body .ent-msheet__nav a[data-nv="deploy"]{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%2015c-1.5%201.5-2%204-2%206%202%200%204.5-.5%206-2%22/%3E%3Cpath%20d%3D%22M9%2015l-3-3c2-6%207-9%2014-9%200%207-3%2012-9%2014z%22/%3E%3Ccircle%20cx%3D%2215%22%20cy%3D%229%22%20r%3D%221.6%22/%3E%3C/svg%3E")}
html:root body .ent-topnav > a[data-nv="vault"],html:root body .ent-bnav a[data-nv="vault"],html:root body .ent-msheet__nav a[data-nv="vault"]{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%225%22%20width%3D%2218%22%20height%3D%2215%22%20rx%3D%222%22/%3E%3Cpath%20d%3D%22M3%2010h18%22/%3E%3Cpath%20d%3D%22M16%2015h2%22/%3E%3C/svg%3E")}
html:root body .ent-topnav > a[data-nv="home"],html:root body .ent-bnav a[data-nv="home"],html:root body .ent-msheet__nav a[data-nv="home"]{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cellipse%20cx%3D%2212%22%20cy%3D%226%22%20rx%3D%227%22%20ry%3D%223%22/%3E%3Cpath%20d%3D%22M5%206v6c0%201.7%203.1%203%207%203s7-1.3%207-3V6%22/%3E%3Cpath%20d%3D%22M5%2012v6c0%201.7%203.1%203%207%203s7-1.3%207-3v-6%22/%3E%3C/svg%3E")}
html:root body .ent-topnav > a[data-nv="docs"],html:root body .ent-bnav a[data-nv="docs"],html:root body .ent-msheet__nav a[data-nv="docs"]{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M7%203h7l5%205v13H7z%22/%3E%3Cpath%20d%3D%22M14%203v5h5%22/%3E%3Cpath%20d%3D%22M10%2013h6M10%2017h6%22/%3E%3C/svg%3E")}
html:root body .ent-topnav > a[data-nv="stats"],html:root body .ent-bnav a[data-nv="stats"],html:root body .ent-msheet__nav a[data-nv="stats"]{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%203v18h18%22/%3E%3Cpath%20d%3D%22M8%2016v-4M13%2016V8M18%2016V5%22/%3E%3C/svg%3E")}
html:root body .ent-topnav > a[data-nv="how"],html:root body .ent-bnav a[data-nv="how"],html:root body .ent-msheet__nav a[data-nv="how"]{--ic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22/%3E%3Cpath%20d%3D%22M9.5%209.5a2.5%202.5%200%201%201%203.5%202.3c-.7.4-1%201-1%201.7%22/%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2217%22%20r%3D%22.6%22%20fill%3D%22black%22/%3E%3C/svg%3E")}

html:root body :is(button,input,select,textarea,.btn,.ent-btn,.cta-mini,#nav-cta,#fd-signin-btn,.who,#who,.ent-theme-btn,.ent-chip,.ent-panel,.ent-menu-btn,.ent-msheet__in,.kbd,.sort-menu,#filter-panel,.ent-chip--ca,.ent-chip--soon){border-radius:var(--ent-r-ctl)!important}
html:root body :is(.ent-sealed,.tok-tag,.g2chip,.rbadge){border-radius:var(--ent-r-chip)!important}
html:root body :is(.ent-logo svg){border-radius:0!important}

/* logo: tile mark + bold sans wordmark */
html:root body :is(.ent-bar,header.top,.topbar) .ent-logo{font:700 19px/1 var(--ent-font)!important;font-variation-settings:normal!important;letter-spacing:-.02em!important;gap:10px}
html:root body :is(.ent-bar,header.top,.topbar) .ent-logo svg{width:30px;height:30px}
/* controls: sans, rounded */
html:root body :is(.ent-bar,header.top,.topbar) :is(#nav-cta,#fd-signin-btn,.who,#who){font:600 13px/1 var(--ent-font)!important;font-variation-settings:normal!important}
html:root body .ent-topnav > a{font:500 14px/1 var(--ent-font)!important;font-variation-settings:normal!important}
html:root body footer.ent-foot{font-family:var(--ent-font);font-variation-settings:normal}
.ent-net,.ent-menu-btn{display:none}

@media (min-width:1100px){
  :root{--ent-side-w:236px;--ent-bar-h:64px}
  html:root body{padding-left:var(--ent-side-w)!important;padding-top:64px!important;box-sizing:border-box}
  html:root:root body :is(header.ent-bar,header.top,.topbar){position:fixed!important;left:0!important;top:0!important;bottom:0!important;margin:0!important;width:var(--ent-side-w)!important;height:100vh!important;
    border-bottom:0!important;border-right:var(--ent-bw-rule) solid var(--ent-rule)!important;background:var(--ent-side,var(--ent-sheet))!important;background-image:none!important;z-index:40!important;overflow:visible!important}
  html:root body :is(header.ent-bar > .ent-bar__in,header.top > .wrap,.topbar){flex-direction:column!important;flex-wrap:nowrap!important;align-items:stretch!important;height:100%;padding:20px 14px 18px!important}
  html:root body :is(.ent-bar,header.top,.topbar) .topbar-left{padding:0 6px}
  html:root body .ent-topnav{order:2;flex:0 0 auto!important;flex-direction:column!important;align-items:stretch!important;gap:2px;margin:26px 0 0!important;overflow:visible!important}
  html:root body .ent-topnav > a{height:40px!important;min-height:40px!important;max-height:40px!important;padding:0 12px!important;gap:12px;border-radius:var(--ent-r-ctl)!important;color:var(--ent-ink-2)!important}
  html:root body .ent-topnav > a::before{content:""!important;display:block!important;position:static!important;inset:auto!important;transform:none!important;opacity:1!important;border:0!important;width:18px!important;height:18px!important;flex:none;background:currentColor!important;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
  html:root body .ent-topnav > a:hover{background:var(--ent-sheet)!important;text-decoration:none!important;color:var(--ent-ink)!important}
  html:root body .ent-topnav > a.is-on{background:var(--ent-ion-soft)!important;color:var(--ent-ion-ink)!important}
  html:root body :is(.ent-bar,header.top,.topbar) .topbar-right{position:fixed!important;top:14px!important;right:28px!important;margin:0!important;z-index:41;order:3}
  html:root body .ent-net{order:9;display:flex;align-items:center;gap:10px;margin-top:auto;height:40px;padding:0 12px;border:var(--ent-bw-rule) solid var(--ent-rule-strong);border-radius:var(--ent-r-ctl);
    font:500 13px/1 var(--ent-font);color:var(--ent-ink-2)}
  html:root body .ent-net__dot{width:8px;height:8px;border-radius:50%!important;background:var(--ent-ok)}
  html:root body header.ent-bar:empty{min-height:0!important}
}
@media (max-width:1099px){
  :root{--ent-bar-h:61px}
  html:root body .ent-topnav{display:none!important}
  html:root body header.ent-bar:empty{min-height:61px!important}
  html:root:root body :is(header.ent-bar,header.top,.topbar){background-image:none!important}
  html:root body .ent-menu-btn{display:inline-grid;place-items:center;width:36px;height:36px;padding:0;border:var(--ent-bw-box) solid var(--ent-line);background:var(--ent-sheet);color:var(--ent-ink);cursor:pointer}
  html:root body .ent-menu-btn svg{width:18px;height:18px}
  html:root body .ent-msheet{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.45);display:flex;justify-content:flex-end}
  html:root body .ent-msheet[hidden]{display:none}
  html:root body .ent-msheet__in{width:min(320px,86vw);height:100%;overflow:auto;background:var(--ent-plate);border-left:var(--ent-bw-rule) solid var(--ent-rule);padding:18px 14px calc(18px + env(safe-area-inset-bottom));border-radius:0!important;box-sizing:border-box}
  html:root body .ent-msheet__nav{display:flex;flex-direction:column;gap:2px}
  html:root body .ent-msheet__nav a{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:var(--ent-r-ctl);color:var(--ent-ink);text-decoration:none;font:500 15px/1 var(--ent-font)}
  html:root body .ent-msheet__nav a::before{content:"";width:18px;height:18px;flex:none;background:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
  html:root body .ent-msheet__nav a:hover{background:var(--ent-sheet)}
  html:root body.ent-authed .ent-msheet__nav .ent-authed-only{display:flex!important}
  html:root body .ent-msheet__more{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:18px;padding:16px 12px 0;border-top:var(--ent-bw-rule) solid var(--ent-rule)}
  html:root body .ent-msheet__more a{min-height:36px;display:inline-flex;align-items:center;color:var(--ent-ink-2);text-decoration:none;font:400 14px/1 var(--ent-font)}
  html:root body .ent-bnav{position:fixed;left:0;right:0;bottom:0;z-index:35;display:flex;background:var(--ent-plate);border-top:var(--ent-bw-rule) solid var(--ent-rule);padding:6px 6px calc(6px + env(safe-area-inset-bottom))}
  html:root body .ent-bnav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:52px;color:var(--ent-ink-3);text-decoration:none;font:500 11.5px/1 var(--ent-font);border-radius:var(--ent-r-ctl)}
  html:root body .ent-bnav a i{width:22px;height:22px;background:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
  html:root body .ent-bnav a.is-on{color:var(--ent-ink);background:var(--ent-sheet)}
  html:root body.ent-has-bnav{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
  html.ent-msheet-open,html.ent-msheet-open body{overflow:hidden}
}

/* The offline recovery page (no shell script, so no menu sheet) keeps every link in its footer on phones. */

/* Controls (Appdrop brand package 2026-10-14): primary buttons in brand blue with white text, the active nav item in a
   soft blue, inactive controls on the card surface, hover on the hover grey, focus a visible blue ring. */
html:root body :is(.ent-bar,header.top,.topbar) :is(#nav-cta,#fd-signin-btn),html:root body .ent-btn--primary{background:var(--ent-btn)!important;color:var(--ent-on-ion)!important;border-color:var(--ent-btn)!important}
html:root body :is(.ent-bar,header.top,.topbar) :is(#nav-cta,#fd-signin-btn):hover,html:root body .ent-btn--primary:hover:not(:disabled){background:#1D49E0!important;color:var(--ent-on-ion)!important;border-color:#1D49E0!important}
html:root body :is(.ent-bar,header.top,.topbar) :is(.ent-theme-btn,.hsearch):hover,html:root body .ent-menu-btn:hover{background:var(--ent-hover)!important;color:var(--ent-ink)!important}
html:root body .ent-topnav > a:hover{background:var(--ent-hover)!important}
html:root body .ent-topnav > a.is-on{background:var(--ent-ion-soft)!important;color:var(--ent-ion-ink)!important}
html:root body .ent-msheet__nav a:hover{background:var(--ent-hover)}
html:root body .ent :focus-visible{outline-color:var(--ent-ion)!important}

/* One corner for the bar's controls on every page (header-check: Explore's own skin squared them), and the Proof page's
   panels on the radius tokens like every other panel (proof-check). */
html:root:root body :is(.ent-bar,header.top,.topbar) :is(.ent-theme-btn,#nav-cta,#fd-signin-btn,.who,#who,.ent-menu-btn,.hsearch,.ent-chip){border-radius:var(--ent-r-ctl)!important}
html:root:root body :is(#hp-board,#hp-feed,#hp-more,.ent-panel){border-radius:var(--ent-r-panel)!important}
html:root:root body a.hp-check{border-radius:var(--ent-r-ctl)!important}

/* Content never hides under the phone bottom bar: scrolling to an anchor or a focused control leaves room for it. */
@media (max-width:1099px){html:has(body.ent-has-bnav),html:has(body .mbottom),html:has(body .fd-tabbar){scroll-padding-bottom:84px}}
/* The account chip has one width on every page: /verify, /sig and /recover cannot load the web font, and a fallback
   font's narrower name moved the theme button a few pixels (header-check). The name ellipsises inside it. */
html:root:root body :is(.ent-bar,header.top,.topbar) :is(.who,#who){width:148px!important;min-width:148px!important;max-width:148px!important;overflow:hidden;text-overflow:ellipsis;justify-content:center}
@media (max-width:1099px){html:root:root body :is(.ent-bar,header.top,.topbar) :is(.who,#who){width:108px!important;min-width:108px!important;max-width:108px!important;padding:0 8px!important}}

/* Menu sheet header with its close button (operator 2026-10-11). */
html:root body .ent-msheet__hd{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px;padding:0 4px 0 12px}
html:root body .ent-msheet__ttl{font:600 14px/1 var(--ent-font);color:var(--ent-ink-3)}
html:root body .ent-msheet__x{display:grid;place-items:center;width:44px;height:44px;padding:0;border:var(--ent-bw-box) solid var(--ent-line);border-radius:var(--ent-r-ctl)!important;background:var(--ent-sheet);color:var(--ent-ink);cursor:pointer}
html:root body .ent-msheet__x:hover{background:var(--ent-hover)}
html:root body .ent-msheet__x svg{width:18px;height:18px}

/* Wallet picker in the new look (operator 2026-10-11: "sign in menu isn't redone"): rounded card, neutral borders, quiet rows. */
html:root:root body #ent-wallet-sheet .ew-card{border-radius:16px!important;border:var(--ent-bw-rule) solid var(--ent-rule-strong)!important;background:var(--ent-sheet)!important;padding:20px 18px 18px!important}
html:root:root body #ent-wallet-sheet h2{font:700 18px/1.2 var(--ent-font)!important;letter-spacing:-.01em}
html:root:root body #ent-wallet-sheet .ew-sub{color:var(--ent-ink-3)!important}
html:root:root body #ent-wallet-sheet .ew-row{border-radius:12px!important;border:var(--ent-bw-rule) solid var(--ent-rule-strong)!important;background:var(--ent-sheet-2)!important;color:var(--ent-ink)!important;font:600 15px/1 var(--ent-font)!important}
html:root:root body #ent-wallet-sheet .ew-row:hover{background:var(--ent-hover)!important;color:var(--ent-ink)!important;border-color:var(--ent-line)!important}
html:root:root body #ent-wallet-sheet .ew-row img,html:root:root body #ent-wallet-sheet .ew-ic-fb{border-radius:8px!important}
html:root:root body #ent-wallet-sheet .ew-tag{font:500 12px/1 var(--ent-font)!important;color:var(--ent-ink-3)!important}
html:root:root body #ent-wallet-sheet .ew-x{border-radius:var(--ent-r-ctl)!important}
@media (max-width:599px){html:root:root body #ent-wallet-sheet .ew-card{border-radius:16px 16px 0 0!important;padding-bottom:calc(18px + env(safe-area-inset-bottom))!important}}

/* Brand refresh, page bodies (2026-10-11). The shell was restyled in dev.93 but the vault body (ent-vault.js's own
   stylesheet) and the verify / docs / proof bodies (ent-docs.css) kept the square terminal look: mono uppercase labels,
   square boxes. Sans for words, rounded panels, mono only where the content IS code (addresses, hashes, numbers). */
html:root body .entv :is(.entv-panel,.entv-sheet){border-radius:var(--ent-r-panel)!important}
html:root body .entv :is(.entv-fees,.entv-tree){border-radius:var(--ent-r-panel)!important;border-color:var(--ent-rule-strong)!important}
html:root body .entv :is(.entv-warn,.entv-warn--block,input,select,textarea,.entv-lockbadge,.pending,.derived){border-radius:var(--ent-r-ctl)!important}
html:root body .entv :is(.entv-btn,.entv-chip,.entv-epoch){border-radius:999px!important}
html:root body .entv :is(.entv-label,.entv-kv dt,.entv-tree legend,.entv-epoch,.entv-steps,.entv-lockbadge){font-family:var(--ent-font)!important;letter-spacing:0!important;text-transform:none!important}
html:root body .entv :is(.entv-label,.entv-tree legend){font-size:13px!important;font-weight:600!important;color:var(--ent-ink-2)!important}
html:root body .entv .entv-kv dt{font-size:12.5px!important;color:var(--ent-ink-3)!important}
html:root body .entv .entv-epoch{font-size:12px!important;padding:3px 10px!important;color:var(--ent-ink-2)!important;border-color:var(--ent-rule-strong)!important}
html:root body .entv .entv-steps{font-size:14px!important}
html:root body .entv .entv-keys i{border-radius:2px!important}
html:root body .entv .entv-wordgrid :is(input,.entv-wbox){border-radius:var(--ent-r-ctl)!important}
html:root body .entv :is(h2,h3){font-family:var(--ent-font)!important;letter-spacing:-.01em!important;text-transform:none!important}

/* verify, docs, proof, signatures (body.hl in ent-docs.css) */
html:root body.hl :is(.hl-head .hl-kicker,.hl-status dt,.hl-doc h2,.hl-doc h3,.hl-t thead th,.hl-legend,.hl-barkey,.hl-flowdown,.hl-seq h4,.hl-trio h4,.hl-trio .tag,.hl-seq .lane,.hl-seq .prompt,.hv-form label,.hv-form details summary,.hv-actions .st,.hv-verdict .tag,.hv-tag,.hv-check h3,.hv-rows dt,.ent-btn,.hl-bytes span){font-family:var(--ent-font)!important;font-variation-settings:normal!important;letter-spacing:0!important;text-transform:none!important}
html:root body.hl :is(.hl-doc h2){font-size:22px!important;letter-spacing:-.015em!important}
html:root body.hl :is(.hl-doc h3,.hv-check h3){font-size:15.5px!important}
html:root body.hl :is(.hv-check,.hv-verdict,.hv-form,.hl-status,.notice,.hl-trio > *,.hl-seq,.hl-bytes,pre){border-radius:var(--ent-r-panel)!important}
html:root body.hl :is(.hv-tag,.hv-verdict .tag,.hl-trio .tag,.hl-seq .lane){border-radius:999px!important;padding-left:10px!important;padding-right:10px!important}
html:root body.hl :is(input,select,textarea,.ent-btn,button){border-radius:var(--ent-r-ctl)!important}
html:root body.hl .hv-tag{min-width:0!important;font-size:12px!important}
/* proof page (inline --hp-mono) and the docs contents list: words in sans, addresses (.hp-m, code) stay mono */
html:root body.hl{--hp-mono:var(--ent-font);--hp-wd:normal}
html:root body.hl .hp-m{font-family:var(--ent-mono)!important;font-variation-settings:"wdth" 82!important}
html:root body.hl .hp-fig .v{font-variant-numeric:tabular-nums;letter-spacing:-.015em!important}
html:root body.hl .hl-toc,html:root body.hl .hl-toc :is(summary,a,li,span){font-family:var(--ent-font)!important;font-variation-settings:normal!important;letter-spacing:0!important}
html:root body.hl .hl-toc{border-radius:var(--ent-r-panel)!important}
html:root body.hl .hl-toc a[aria-current],html:root body.hl .hl-toc a.on{border-radius:var(--ent-r-ctl)!important}
html:root body.hl .hl-status dd{font-family:var(--ent-font)!important;font-variation-settings:normal!important;font-size:13.5px!important}
html:root body.hl .hl-status dd a{font-family:var(--ent-mono)!important;font-variation-settings:"wdth" 82!important;font-size:12.5px}
/* Long pad names (launchpad-forge pads, 2026-10-11): under the sidebar breakpoint the wordmark shrinks and then truncates
   instead of pushing the header controls onto a second row ("examplepad" wrapped the 390 px bar to 97 px). */
@media (max-width:1099px){
  html:root body :is(.ent-bar,header.top,.topbar) .ent-logo{min-width:0;flex:0 1 auto}
  html:root body :is(.ent-bar,header.top,.topbar) .ent-logo span{min-width:0;max-width:calc(100vw - 262px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
@media (max-width:480px){html:root:root body :is(.ent-bar,header.top,.topbar) .ent-logo{font-size:clamp(14px,4.1vw,17px)!important;gap:7px}}
/* Platform token address chip (ent-fees.js mountCa): only exists once ENT_TOKEN_CA is set, so the dev.93 to dev.97
   brand passes never saw it (go-live rehearsal 2026-10-12). Rounded control, sans label, mono address only. */
html:root:root body .ent-ca{border-radius:var(--ent-r-ctl)!important;overflow:hidden;border-color:var(--ent-rule-strong)!important;font:500 13px/1 var(--ent-font)!important;letter-spacing:0!important}
html:root:root body .ent-ca__t{font-family:var(--ent-font)!important;font-weight:650!important;color:var(--ent-ink)!important;letter-spacing:0!important}
html:root:root body .ent-ca__a{font-family:var(--ent-mono)!important;font-variation-settings:"wdth" 82!important;font-size:12.5px!important;color:var(--ent-ink-2)!important;text-decoration:none!important}
html:root:root body .ent-ca__a:hover{color:var(--ent-ink)!important;text-decoration:underline!important}
html:root:root body .ent-ca__c{font-family:var(--ent-font)!important;font-weight:600!important;text-transform:none!important;letter-spacing:0!important;border-left-color:var(--ent-rule-strong)!important}
@media (max-width:1099px){html:root:root body .ent-ca-row{padding:8px 16px;background:var(--ent-plate)!important;border-bottom:var(--ent-bw-rule,1px) solid var(--ent-rule)!important}
  html:root:root body .ent-ca-row .ent-ca{border:var(--ent-bw-rule,1px) solid var(--ent-rule-strong)!important;height:36px}}
html:root:root body :is(.ent-bar,header.top,.topbar) .ent-ca{height:36px!important;min-height:36px!important;box-sizing:border-box!important}   /* /app's bar drew it at 34 px */
/* the chip's outline as an inset shadow, not a border: its link and copy button then fill the full 36 px control height */
html:root:root body .ent-ca{border:0!important;box-shadow:inset 0 0 0 1px var(--ent-rule-strong)}
html:root:root body .ent-ca__c{border-left:0!important;box-shadow:inset 1px 0 0 var(--ent-rule-strong)}
html:root:root body :is(.ent-ca__a,.ent-ca__c){height:100%!important;min-height:0!important}
@media (max-width:1099px){html:root:root body .ent-ca-row .ent-ca{border:0!important}}

/* landing + launch button (ent-shell.js launchFab), matching Explore's #kb-launch-fab */
html:root body #ent-launch-fab{position:fixed;right:28px;bottom:28px;z-index:55;width:56px;height:56px;border-radius:14px!important;display:grid;place-items:center;background:var(--ent-btn);color:var(--ent-on-ion);text-decoration:none;box-shadow:var(--ent-lift,0 6px 20px rgba(0,0,0,.18))}
html:root body #ent-launch-fab:hover{background:#1D49E0;color:var(--ent-on-ion)}
#ent-launch-fab:focus-visible{outline:2px solid var(--ent-ion);outline-offset:3px}
@media (max-width:1099px){html:root body #ent-launch-fab{right:16px;bottom:calc(78px + env(safe-area-inset-bottom));width:48px;height:48px;border-radius:12px!important;z-index:58}}

/* The phone tab bar is styled only under 1100 px; on a desktop it must not render at all (it showed as bare link text). */
@media (min-width:1100px){html:root body .ent-bnav{display:none!important}}

/* App lines (brand package 2026-10-14): the pump.fun app in restrained mint, FOMO in its own indigo (fomo.family uses
   #516AF6 on #060510; the package's pink was wrong, operator 2026-10-14), on badges, the
   Explore tabs and the launch chooser. Used only where the line is real (a coin's line, the two launch options). */
:root{--ent-pump:#0B8A5E;--ent-pump-soft:rgba(33,197,139,.13);--ent-fomo:#3F4FD0;--ent-fomo-soft:rgba(81,106,246,.12)}
:root[data-theme="dark"]{--ent-pump:#3DDCA0;--ent-pump-soft:rgba(33,197,139,.16);--ent-fomo:#9AA8FF;--ent-fomo-soft:rgba(81,106,246,.18)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ent-pump:#3DDCA0;--ent-pump-soft:rgba(33,197,139,.16);--ent-fomo:#9AA8FF;--ent-fomo-soft:rgba(81,106,246,.18)}}
html:root:root body .ent-line--pump.ent-line--pump.ent-line--pump{background:var(--ent-pump-soft)!important;color:var(--ent-pump)!important;border-color:transparent!important}
html:root:root body .ent-line--fomo.ent-line--fomo.ent-line--fomo{background:var(--ent-fomo-soft)!important;color:var(--ent-fomo)!important;border-color:transparent!important}
/* Each app's own icon (operator 2026-10-14): pump.fun's pill and FOMO's mark, from their sites' favicons. */
html:root:root body :is(.ent-line--pump,.ent-line--fomo){display:inline-flex!important;align-items:center;gap:5px}
html:root:root body :is(.ent-line--pump,.ent-line--fomo)::before{content:""!important;display:inline-block!important;width:14px!important;height:14px!important;flex:none;border-radius:4px;-webkit-mask:none!important;mask:none!important;background:center/contain no-repeat!important;opacity:1!important}
html:root:root body .ent-line--pump::before{background-image:url(/ent/apps/pump.png)!important}
html:root:root body .ent-line--fomo::before{background-image:url(/ent/apps/fomo.png)!important}
#dep-line .opt .head::before{content:"";display:inline-block;width:20px;height:20px;border-radius:5px;margin-right:9px;vertical-align:-4px;background:center/contain no-repeat}
#dep-line .opt[data-v="pump"] .head::before{background-image:url(/ent/apps/pump.png)}
#dep-line .opt[data-v="fomo"] .head::before{background-image:url(/ent/apps/fomo.png)}
html:root body :is(.tab,.mtab,.mbtab)[data-sort="line-pump"]::before,html:root body :is(.tab,.mtab,.mbtab)[data-sort="line-fomo"]::before{content:"";display:inline-block!important;position:static!important;width:16px;height:16px;margin-right:7px;vertical-align:-3px;border-radius:4px;background:center/contain no-repeat;opacity:1!important}
html:root body :is(.tab,.mtab,.mbtab)[data-sort="line-pump"]::before{background-image:url(/ent/apps/pump.png)}
html:root body :is(.tab,.mtab,.mbtab)[data-sort="line-fomo"]::before{background-image:url(/ent/apps/fomo.png)}
