:root { --col-left:26rem; --col-right:22rem; --up-soft:#2f7d43; --up-soft-bg:rgba(47,158,68,.12); --down-soft:#b83b3b; --down-soft-bg:rgba(201,42,42,.10); --fg:#1b1b1f; --muted:#6b6b76; --line:#e4e4ea; --bg:#fafafa; --card:#fff; --accent:#3b5bdb; --up:#2b8a3e; --down:#c92a2a; }
@media (prefers-color-scheme: dark) { :root { --fg:#e8e8ee; --muted:#9a9aa6; --line:#2c2c34; --bg:#121216; --card:#1a1a20; --accent:#8ea2ff; --up:#51cf66; --down:#ff6b6b; --up-soft:#8fd9a0; --up-soft-bg:rgba(81,207,102,.14); --down-soft:#f19a9a; --down-soft-bg:rgba(255,107,107,.14); } }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--fg); font:16px/1.5 "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
a { color:var(--accent); text-decoration:none; } a:hover { text-decoration:underline; }
header.site { padding:.75rem 1rem; border-bottom:1px solid var(--line); background:var(--card); display:flex; gap:.75rem; align-items:baseline; flex-wrap:wrap; }
.brand { font-weight:800; font-size:1.15rem; color:var(--fg); }
.sub, .status, .empty { color:var(--muted); font-size:.9rem; }
main { max-width:42rem; margin:0 auto; padding:1rem; }
h1 { font-size:1.4rem; margin:.25rem 0; } h2 { font-size:1.05rem; margin:.25rem 0 .5rem; }
.thesis, .details, .revisions { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:.75rem 1rem; margin-bottom:.75rem; }
.meta, .foot { display:flex; flex-wrap:wrap; gap:.25rem .6rem; align-items:center; font-size:.875rem; color:var(--muted); }
.author { font-weight:700; }
.token { font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-weight:500; font-size:.85rem; color:var(--fg); }
.badge { font-size:.72rem; border:1px solid var(--line); border-radius:999px; padding:0 .45rem; color:var(--muted); }
.badge.edited { border-color:#e8a33d; color:#b87514; }
.badge.dev { border-color:#d9480f; color:#d9480f; }
.text { white-space:pre-wrap; overflow-wrap:anywhere; margin:.4rem 0; }
.foot a.when { color:var(--muted); }
.thesis.new { animation: flash 2s ease-out; }
@keyframes flash { from { background:rgba(59,91,219,.15); } to { background:var(--card); } }
.pager { display:flex; justify-content:space-between; padding:.5rem 0 2rem; }
dl { display:grid; grid-template-columns:max-content 1fr; gap:.2rem 1rem; margin:0; font-size:.9rem; }
dt { color:var(--muted); } dd { margin:0; overflow-wrap:anywhere; }
.mono, code, pre { font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.85rem; }
.revision + .revision { border-top:1px solid var(--line); margin-top:.5rem; padding-top:.5rem; }
.thread { margin-bottom:.75rem; }
.thread .node { border-left:2px solid var(--line); padding-left:.6rem; }
.thread .node.d0 { border-left:0; padding-left:0; }
.thread .node.d1 { margin-left:0; } .thread .node.d2 { margin-left:.75rem; } .thread .node.d3 { margin-left:1.5rem; }
.thread .node.d4 { margin-left:2.25rem; } .thread .node.d5 { margin-left:3rem; } .thread .node.d6 { margin-left:3.5rem; }
.thread .node.d7 { margin-left:4rem; } .thread .node.d8 { margin-left:4.5rem; }
.thesis.current { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent); }
@media (max-width: 30rem) { .thread .node.d3, .thread .node.d4, .thread .node.d5, .thread .node.d6, .thread .node.d7, .thread .node.d8 { margin-left:1.5rem; } }
.thesis { display:grid; grid-template-columns:40px minmax(0, 1fr); column-gap:.7rem; align-items:start; }
.avatar { width:40px; height:40px; border-radius:50%; overflow:hidden; background:var(--line); display:flex; align-items:center; justify-content:center; font-weight:700; color:var(--muted); }
.avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.position { font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.8rem; color:var(--fg); background:var(--line); border-radius:6px; padding:0 .35rem; }
@media (max-width: 30rem) { .thesis { grid-template-columns:32px minmax(0, 1fr); column-gap:.55rem; } .avatar { width:32px; height:32px; font-size:.85rem; } }

/* ---------- ticker tape (feed page) ---------- */
.ticker { display:flex; align-items:stretch; background:var(--card); border-bottom:1px solid var(--line); font-size:.8rem; }
.ticker-label { flex:none; display:flex; align-items:center; padding:0 .8rem; border-right:1px solid var(--line); color:var(--muted); font-weight:800; font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; }
.ticker-viewport { flex:1; min-width:0; overflow:hidden; }
.ticker-track { display:flex; width:max-content; animation:ticker-scroll 45s linear infinite; }
.ticker:hover .ticker-track { animation-play-state:paused; }
.ticker-list { display:flex; list-style:none; margin:0; padding:0; }
.ticker-list li { display:flex; gap:.45rem; align-items:baseline; padding:.45rem 1.1rem; white-space:nowrap; border-right:1px solid var(--line); font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; }
.tk-symbol { font-weight:500; color:var(--fg); }
.tk-price { color:var(--muted); }
.tk-change.up { color:var(--up); } .tk-change.down { color:var(--down); }
@keyframes ticker-scroll { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .ticker-track { animation:none; }
  .ticker-viewport { overflow-x:auto; }
}

/* ---------- three-column dashboard (feed page) ---------- */
/* Full width: no max-width and no auto margins (auto margins would shrink-wrap main
   and center it once body becomes a flex container on wide screens). */
body.page-dashboard main { max-width:none; width:100%; margin:0; padding:0; }
.dashboard { display:grid; grid-template-columns:minmax(0, 1fr); gap:1rem; padding:1rem; }
.col-head { display:flex; align-items:baseline; justify-content:space-between; gap:.5rem; margin-bottom:.5rem; }
.col-head h2 { margin:0; font-size:.95rem; font-weight:800; display:flex; align-items:center; gap:.45rem; }
.col-head .status { margin:0; font-size:.8rem; }
.live-dot { width:.5rem; height:.5rem; border-radius:50%; background:var(--up); box-shadow:0 0 0 3px rgba(43,138,62,.18); }
.modal-placeholder { width:100%; max-width:34rem; background:var(--card); border:1px solid var(--line); border-radius:14px; box-shadow:0 12px 40px rgba(0,0,0,.08); }
.modal-head, .modal-foot { display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding:.8rem 1.1rem; }
.modal-head { border-bottom:1px solid var(--line); }
.modal-head h2 { margin:0; font-weight:800; }
.modal-foot { border-top:1px solid var(--line); justify-content:flex-end; }
.modal-body { padding:1rem 1.1rem 1.2rem; display:grid; gap:.6rem; }
.modal-body .sub { margin:0 0 .2rem; }
.modal-close { border:0; background:none; font-size:1.4rem; line-height:1; color:var(--muted); cursor:not-allowed; }
.btn { font:inherit; font-size:.875rem; font-weight:700; border:1px solid var(--line); background:var(--card); color:var(--fg); border-radius:8px; padding:.4rem .9rem; cursor:not-allowed; opacity:.7; }
.btn.primary { background:var(--accent); border-color:var(--accent); color:#fff; }
.skeleton { height:.8rem; border-radius:6px; background:var(--line); }
.skeleton.block { height:6rem; }
.skeleton.w-80 { width:80%; } .skeleton.w-60 { width:60%; } .skeleton.w-40 { width:40%; }
.column-placeholder { display:flex; align-items:center; justify-content:center; min-height:12rem; height:100%; border:2px dashed var(--line); border-radius:10px; color:var(--muted); font-size:.9rem; text-align:center; padding:1rem; }

@media (min-width: 64rem) {
  /* Fixed-height dashboard. Left and right columns are fixed-width panels pinned to
     the window edges; the middle takes whatever width is left. Each scrolls on its own. */
  body.page-dashboard { height:100vh; display:flex; flex-direction:column; overflow:hidden; }
  body.page-dashboard main { flex:1; min-height:0; }
  .dashboard { height:100%; gap:0; padding:0; grid-template-columns:var(--col-left) minmax(0, 1fr) var(--col-right); }
  .col { min-height:0; display:flex; flex-direction:column; padding:1rem; }
  .col-feed { background:var(--bg); border-right:1px solid var(--line); }
  .col-right { background:var(--bg); border-left:1px solid var(--line); }
  /* Columns scroll (wheel, trackpad, touch) without a visible scrollbar. */
  .col-body { flex:1; min-height:0; overflow-y:auto; scrollbar-width:none; -ms-overflow-style:none; }
  .col-body::-webkit-scrollbar { display:none; }
  .col-center { justify-content:center; align-items:center; padding:1.5rem; }
  .col-right .col-body { display:flex; flex-direction:column; }
  .col-right .column-placeholder { flex:1; }
}


/* ---------- chain filter chips ---------- */
.filters { display:flex; flex-wrap:wrap; gap:.4rem; margin:0 0 .65rem; }
.chip { display:inline-flex; align-items:center; gap:.4rem; padding:.22rem .65rem .22rem .3rem; border:1px solid var(--line); border-radius:999px; background:var(--card); color:var(--muted); font-size:.8rem; font-weight:700; user-select:none; }
.chip:hover { text-decoration:none; border-color:var(--muted); }
.chip.active { color:var(--fg); border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent); }
.chip:not(.active) .chain-icon { filter:grayscale(1); opacity:.5; }
.chip:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.chain-icon { width:20px; height:20px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:var(--line); flex:none; }
.chain-icon img { width:14px; height:14px; display:block; }
.chain-icon.robinhood { background:#111; }  /* the mark is neon #CCFF00 */

/* ---------- token line under the author row ---------- */
.token-line { display:flex; align-items:baseline; gap:.45rem; margin-top:.15rem; min-width:0; font-size:.875rem; }
.token-name { color:var(--muted); font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.token-name.unknown { font-style:italic; }
.token[data-address] { cursor:pointer; border-bottom:1px dotted var(--muted); }
.token[data-address]:hover, .token[aria-expanded="true"] { color:var(--accent); border-bottom-color:var(--accent); }
.token[data-address]:focus-visible { outline:2px solid var(--accent); outline-offset:2px; border-radius:3px; }

/* ---------- token hover card ---------- */
.token-pop { position:fixed; z-index:1000; width:18rem; max-width:calc(100vw - 16px); background:var(--card); color:var(--fg); border:1px solid var(--line); border-radius:12px; box-shadow:0 12px 32px rgba(0,0,0,.14); padding:.75rem .85rem; font-size:.8rem; }
.tp-head { display:flex; align-items:baseline; gap:.45rem; min-width:0; }
.tp-symbol { font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-weight:500; font-size:.9rem; }
.tp-name { color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tp-price { display:flex; align-items:baseline; gap:.5rem; margin:.35rem 0 .55rem; }
.tp-price-value { font-size:1.15rem; font-weight:800; }
.tp-change { font-weight:700; }
.tp-change.up, .tp-value.up { color:var(--up); } .tp-change.down, .tp-value.down { color:var(--down); }
.tp-grid { display:grid; grid-template-columns:1fr 1fr; gap:.35rem .75rem; padding:.55rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.tp-stat { display:flex; flex-direction:column; min-width:0; }
.tp-label { color:var(--muted); font-size:.7rem; }
.tp-value { font-weight:700; font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.8rem; }
.tp-meta { display:flex; flex-wrap:wrap; gap:.2rem .6rem; color:var(--muted); margin-top:.5rem; }
.tp-links { display:flex; gap:.8rem; margin-top:.35rem; font-weight:700; }
.tp-address { margin-top:.45rem; font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.68rem; color:var(--muted); overflow-wrap:anywhere; }
.tp-updated { margin-top:.2rem; color:var(--muted); font-size:.68rem; }
.tp-empty { margin:.4rem 0 0; color:var(--muted); }

/* chain logo badge on thesis cards (name is in title/aria-label) */
.chain-badge { width:18px; height:18px; }
.chain-badge img { width:12px; height:12px; }
.chain-icon.arc { background:none; }          /* the Arc mark has its own dark circle */
.chain-icon.arc img { width:100%; height:100%; }

/* token line v2: [chain logo] Token name  $pos  +pnl% */
.token-line { align-items:center; gap:.5rem; }
.token-line .token { font-family:inherit; font-size:.9rem; font-weight:700; color:var(--fg); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.token-line .token.unknown { font-weight:500; font-style:italic; color:var(--muted); }
.token-line .position { flex:none; }
.pnl { flex:none; font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.8rem; font-weight:500; }
.pnl.up { color:var(--up); } .pnl.down { color:var(--down); }

/* ---------- author profile page ---------- */
.profile-card { background:var(--card); border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.profile-cover { height:5.5rem; background:linear-gradient(135deg, var(--accent), #7048e8); }
.profile-cover img { width:100%; height:100%; object-fit:cover; display:block; }
.profile-main { padding:0 1.1rem 1.1rem; }
.profile-avatar { width:88px; height:88px; margin-top:-44px; border-radius:50%; overflow:hidden; border:4px solid var(--card); background:var(--line); display:flex; align-items:center; justify-content:center; font-size:2rem; font-weight:800; color:var(--muted); }
.profile-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.profile-name { margin:.5rem 0 0; font-size:1.35rem; font-weight:800; overflow-wrap:anywhere; display:flex; align-items:center; gap:.4rem; }
.verified { display:inline-flex; align-items:center; justify-content:center; width:1.1rem; height:1.1rem; border-radius:50%; background:var(--accent); color:#fff; font-size:.7rem; }
.profile-handle { margin:0; color:var(--muted); font-weight:500; }
.profile-clan { display:flex; align-items:center; gap:.45rem; margin:.7rem 0 0; font-size:.875rem; }
.profile-clan img { border-radius:5px; }
.clan-name { font-weight:700; }
.clan-role { font-size:.72rem; color:var(--muted); border:1px solid var(--line); border-radius:999px; padding:0 .45rem; text-transform:capitalize; }
.profile-bio { white-space:pre-wrap; overflow-wrap:anywhere; margin:.7rem 0 0; font-size:.9rem; }
.profile-links { display:flex; flex-wrap:wrap; gap:.3rem .9rem; margin:.6rem 0 0; font-size:.85rem; color:var(--muted); }
.profile-links a { font-weight:700; }
.stat-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:.6rem .75rem; margin:.9rem 0 0; padding:.75rem 0 0; border-top:1px solid var(--line); }
.stat-grid div { min-width:0; }
.stat-grid dt { color:var(--muted); font-size:.72rem; }
.stat-grid dd { margin:0; font-weight:800; font-size:1rem; font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; }
.stat-grid dd .pnl { font-size:inherit; font-weight:inherit; }
.profile-section { margin:1.1rem 0 .45rem; font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); }
.chain-counts, .top-tokens { list-style:none; margin:0; padding:0; }
.chain-counts { display:flex; flex-wrap:wrap; gap:.4rem .8rem; }
.chain-counts li { display:flex; align-items:center; gap:.35rem; font-size:.85rem; }
.top-tokens li { display:flex; align-items:center; gap:.5rem; padding:.3rem 0; border-top:1px solid var(--line); font-size:.875rem; min-width:0; }
.top-tokens li:first-child { border-top:0; }
.top-tokens .token { font-family:inherit; font-weight:700; color:var(--fg); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.count { color:var(--muted); font-size:.8rem; margin-left:auto; white-space:nowrap; }
.chain-counts .count { margin-left:0; }
.profile-updated { margin:.9rem 0 0; font-size:.72rem; color:var(--muted); }
/* Wide, short panel: identity | stats | chains & tokens side by side, wrapping when narrow. */
.profile-card { width:100%; }
.profile-main { display:grid; grid-template-columns:minmax(0, 1fr); grid-template-areas:"identity" "holdings"; gap:0 1.75rem; align-items:start; }
.profile-identity { grid-area:identity; min-width:0; }
.profile-holdings { grid-area:holdings; min-width:0; }
@media (min-width: 80rem) {
  /* profile card: identity 1/3, top holdings 2/3 */
  .profile-main { grid-template-columns:minmax(0, 1fr) minmax(0, 2fr); grid-template-areas:"identity holdings"; }
  .profile-main.no-holdings { grid-template-columns:minmax(0, 1fr); grid-template-areas:"identity"; }
}

/* "On fomofeed" panel beneath the profile card: stats | chains | most posted tokens */
.fomofeed-panel { display:grid; grid-template-columns:repeat(auto-fit, minmax(15rem, 1fr)); gap:0 1.75rem; align-items:start; margin-top:1rem; }
.ff-block { min-width:0; }
.ff-block .profile-section:first-child { margin-top:0; }
.fomofeed-panel .stat-grid { margin-top:0; padding-top:0; border-top:0; }
.fomofeed-panel .ff-block + .ff-block .profile-section:first-child { margin-top:0; }
@media (max-width: 63.99rem) { .fomofeed-panel .ff-block + .ff-block { margin-top:1rem; } }
@media (min-width: 64rem) {
  .fomofeed-panel { margin-top:0; padding:1.1rem 1.5rem 1.5rem; border-bottom:1px solid var(--line); }
}
@media (max-width: 63.99rem) {
  .profile-dashboard .col-profile { order:-1; }   /* phones/tablets: profile first, then theses */
}
@media (min-width: 64rem) {
  .dashboard.profile-dashboard { grid-template-columns:var(--col-left) minmax(0, 1fr); }
  /* Flush against the theses column: no padding, square left edge, full width. */
  .col-profile { padding:0; }
  .col-profile .profile-card { border-radius:0; border-width:0 0 1px 0; }
  .profile-main { padding:0 1.5rem 1.25rem; }
}


/* profile identity: avatar beside name, fomo stats underneath */
.profile-head { display:flex; align-items:flex-end; gap:.85rem; }
.profile-head .profile-avatar { flex:none; }
.profile-names { min-width:0; padding-bottom:.2rem; position:relative; top:.45rem; }  /* sit a little lower beside the avatar */
.profile-head .profile-name { margin:0; }
.profile-head + .fomo-stats { margin-top:1.15rem; }  /* room for the lowered name */
.fomo-stats { display:grid; grid-template-columns:repeat(6, minmax(0, auto)); justify-content:start; gap:.2rem 1.1rem; margin:.8rem 0 0; }
.fomo-stats div { min-width:0; }
.fomo-stats dt { color:var(--muted); font-size:.7rem; }
.fomo-stats dd { margin:0; font-weight:800; font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.95rem; }
@media (max-width: 40rem) { .fomo-stats { grid-template-columns:repeat(3, minmax(0, 1fr)); } }

/* top holdings (middle area under the profile panel) */
.holdings { padding:.9rem 0 0; }
.holdings-head { display:flex; align-items:baseline; justify-content:space-between; gap:.75rem; margin-bottom:.6rem; }
.holdings-head h2 { margin:0; font-size:.95rem; font-weight:800; }
.table-scroll { overflow-x:auto; border:1px solid var(--line); border-radius:12px; background:var(--card); }
.holdings-table { width:100%; border-collapse:collapse; font-size:.875rem; }
.holdings-table th, .holdings-table td { padding:.55rem .7rem; text-align:left; white-space:nowrap; border-top:1px solid var(--line); }
.holdings-table thead th { border-top:0; color:var(--muted); font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.holdings-table tbody th { font-weight:700; }
.holdings-table .num { text-align:right; font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.82rem; }
.holdings-table .strong { font-weight:700; color:var(--fg); }
.holdings-table .muted, .holdings-table .num .muted { color:var(--muted); }
.holdings-table .sub { display:block; font-size:.72rem; color:var(--muted); font-weight:400; }
.holdings-table .sub.pnl.up { color:var(--up); } .holdings-table .sub.pnl.down { color:var(--down); }
.holdings-table th, .holdings-table td { vertical-align:top; }
.holding-token { align-items:flex-start; }
.holding-name { display:flex; flex-direction:column; min-width:0; }
.holding-name .token { overflow:hidden; text-overflow:ellipsis; }
.holding-token { display:inline-flex; align-items:center; gap:.5rem; max-width:16rem; }
.holding-token .token { font-family:inherit; font-weight:700; color:var(--fg); overflow:hidden; text-overflow:ellipsis; }
.holdings-note { margin:.5rem 0 0; font-size:.72rem; color:var(--muted); }

.holdings-title { display:flex; flex-direction:column; gap:.15rem; min-width:0; }
.holdings-total { margin:0; display:flex; flex-wrap:wrap; align-items:baseline; gap:.2rem .45rem; }
.holdings-total .label { color:var(--muted); font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.holdings-total .value { font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size:1.35rem; font-weight:800; }
.holdings-total .muted { color:var(--muted); font-size:.8rem; }

/* holdings table: 3 columns */
.holdings-table td.num { width:1%; }
.holdings-table .pnl.strong { font-weight:700; }

/* token logo with chain badge in the corner (holdings table) */
.holding-token { align-items:center; gap:.6rem; }
.token-logo { position:relative; flex:none; width:28px; height:28px; }
.token-logo > img, .token-logo > .initial { width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; object-fit:cover; background:var(--line); color:var(--muted); font-weight:800; font-size:.8rem; }
.chain-icon.chain-corner { position:absolute; right:-3px; bottom:-3px; width:15px; height:15px; box-shadow:0 0 0 2px var(--card); }
.chain-icon.chain-corner img { width:10px; height:10px; }
.chain-icon.chain-corner.arc img { width:100%; height:100%; }

/* clan sits to the right of the name/handle, lowered to match them */
.profile-head { flex-wrap:wrap; column-gap:.85rem; }
.profile-head .profile-clan { margin:0; padding-bottom:.35rem; position:relative; top:.45rem; flex:none; max-width:100%; }
.profile-head .profile-clan .clan-name { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* names/handle and clan: one row, vertically centred on each other, lowered together */
.profile-titles { display:flex; align-items:center; flex-wrap:wrap; gap:.3rem .9rem; min-width:0; position:relative; top:.45rem; padding-bottom:.2rem; }
.profile-titles .profile-names { top:0; padding-bottom:0; }
.profile-head .profile-titles .profile-clan { top:0; padding-bottom:0; }

/* top holdings: square cards, largest first, filling left-to-right then down */
.holdings-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(10.5rem, 1fr)); gap:.65rem; }
.holding-card { aspect-ratio:1 / 1; min-width:0; display:flex; flex-direction:column; justify-content:space-between; gap:.35rem; padding:.75rem; background:var(--card); border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.hc-top { display:flex; align-items:flex-start; justify-content:space-between; }
.holding-card .token-logo, .holding-card .token-logo > img, .holding-card .token-logo > .initial { width:32px; height:32px; }
.hc-rank { font-size:.7rem; font-weight:700; color:var(--muted); }
.hc-name { display:flex; flex-direction:column; min-width:0; }
.hc-name .token { font-family:inherit; font-weight:800; font-size:.92rem; color:var(--fg); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.holding-card .sub { display:block; font-size:.7rem; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.holding-card .sub.pnl.up { color:var(--up); } .holding-card .sub.pnl.down { color:var(--down); }
.hc-numbers { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
.hc-value, .hc-pnl { display:flex; flex-direction:column; min-width:0; }
.hc-pnl { text-align:right; }
.hc-label { font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); }
.holding-card .strong { font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-weight:700; font-size:.9rem; color:var(--fg); white-space:nowrap; }
.holding-card .strong.pnl.up { color:var(--up); } .holding-card .strong.pnl.down { color:var(--down); }
.holding-card .muted { color:var(--muted); }
@media (max-width: 30rem) { .holdings-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); } .holding-card { padding:.6rem; } }

/* holding cards: blurred token logo as the full background, readable overlay on top */
.holding-card { position:relative; isolation:isolate; }
.holding-card > .hc-top, .holding-card > .hc-name, .holding-card > .hc-numbers { position:relative; z-index:1; }
.hc-bg { position:absolute; top:-20%; left:-20%; width:140%; height:140%; max-width:none; object-fit:cover; filter:blur(22px) saturate(1.4); opacity:.9; z-index:-2; pointer-events:none; }
.holding-card.has-bg::before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,.35) 0%, rgba(255,255,255,.72) 55%, rgba(255,255,255,.88) 100%); }
@media (prefers-color-scheme: dark) {
  .holding-card.has-bg::before { background:linear-gradient(180deg, rgba(26,26,32,.35) 0%, rgba(26,26,32,.72) 55%, rgba(26,26,32,.88) 100%); }
}
.holding-card.has-bg { border-color:transparent; box-shadow:inset 0 0 0 1px rgba(127,127,127,.18); }
.holding-card.has-bg .token-logo > img { box-shadow:0 0 0 2px rgba(255,255,255,.6); }
@media (prefers-reduced-transparency: reduce) { .hc-bg { display:none; } .holding-card.has-bg::before { display:none; } }

/* identity keeps followers/following; trading stats live in the holdings section */
.fomo-stats { grid-template-columns:repeat(2, max-content); }
@media (max-width: 40rem) { .fomo-stats { grid-template-columns:repeat(2, max-content); } }
.trading-stats { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:.4rem .9rem; margin:0 0 .75rem; padding:.6rem .75rem; border:1px solid var(--line); border-radius:12px; background:var(--card); }
.trading-stats div { min-width:0; }
.trading-stats dt { color:var(--muted); font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.trading-stats dd { margin:0; font-weight:800; font-size:1rem; font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
@media (max-width: 30rem) { .trading-stats { grid-template-columns:repeat(2, minmax(0, 1fr)); } }

/* followers/following beside the name (vertically centred); clan below the head */
.profile-titles .fomo-stats { margin:0; }
.profile-head + .profile-clan { margin-top:1.15rem; }

/* author lookup status page */
.lookup { max-width:32rem; margin:3rem auto; text-align:center; }
.lookup h1 { font-size:1.5rem; font-weight:800; }
.lookup-spinner { width:2rem; height:2rem; margin:1rem auto; border-radius:50%; border:3px solid var(--line); border-top-color:var(--accent); animation:lookup-spin .9s linear infinite; }
@keyframes lookup-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .lookup-spinner { animation:none; } }

/* visually hidden but available to screen readers and keyboard */
.visually-hidden { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* Active / Closed holdings toggle (CSS-only radio segmented control) */
.holdings-switch { position:relative; }
.holdings-switch .holdings-head { align-items:center; margin-bottom:.55rem; }
.seg { display:inline-flex; padding:3px; border:1px solid var(--line); border-radius:999px; background:var(--card); }
.seg label { padding:.28rem .85rem; border-radius:999px; font-size:.82rem; font-weight:700; color:var(--muted); cursor:pointer; user-select:none; white-space:nowrap; }
.seg label:hover { color:var(--fg); }
#hv-active:checked ~ .holdings-head label[for="hv-active"],
#hv-closed:checked ~ .holdings-head label[for="hv-closed"] { background:var(--accent); color:#fff; }
#hv-active:focus-visible ~ .holdings-head label[for="hv-active"],
#hv-closed:focus-visible ~ .holdings-head label[for="hv-closed"] { outline:2px solid var(--accent); outline-offset:2px; }
.hv-panel, .hv-status-active, .hv-status-closed { display:none; }
#hv-active:checked ~ .hv-panel-active, #hv-closed:checked ~ .hv-panel-closed { display:block; }
#hv-active:checked ~ .holdings-head .hv-status-active, #hv-closed:checked ~ .holdings-head .hv-status-closed { display:inline; }
.hv-panel .holdings-total { margin:0 0 .6rem; }

/* trading stats: 5 items incl. Total PnL */
.trading-stats { grid-template-columns:repeat(5, minmax(0, 1fr)); }
.trading-stats dd.pnl.up { color:var(--up); } .trading-stats dd.pnl.down { color:var(--down); }
.trading-stats dd.muted { color:var(--muted); }
.trading-stats .total-pnl { cursor:help; }
@media (max-width: 40rem) { .trading-stats { grid-template-columns:repeat(3, minmax(0, 1fr)); } }
@media (max-width: 30rem) { .trading-stats { grid-template-columns:repeat(2, minmax(0, 1fr)); } }

/* PREVIEW (?preview=closed-strip): thin fixed row of top closed positions above active holdings */
.closed-strip { margin:0 0 1rem; }
.closed-strip .holdings-head, .active-block .holdings-head { align-items:baseline; margin-bottom:.45rem; }
.closed-strip h3, .active-title { margin:0; font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); }
.closed-row { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit, minmax(11.5rem, 1fr)); gap:.5rem; }
.closed-chip { position:relative; isolation:isolate; overflow:hidden; display:flex; align-items:center; gap:.55rem; min-width:0; height:3.4rem; padding:.4rem .65rem;
  background:var(--card); border:1px solid var(--line); border-radius:10px; }
.closed-chip > .token-logo, .closed-chip > .cc-name, .closed-chip > .cc-pnl { position:relative; z-index:1; }
.closed-chip .hc-bg { filter:blur(16px) saturate(1.4); }
.closed-chip.has-bg { border-color:transparent; box-shadow:inset 0 0 0 1px rgba(127,127,127,.18); }
.closed-chip.has-bg::before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(90deg, rgba(255,255,255,.45) 0%, rgba(255,255,255,.78) 45%, rgba(255,255,255,.9) 100%); }
@media (prefers-color-scheme: dark) {
  .closed-chip.has-bg::before { background:linear-gradient(90deg, rgba(26,26,32,.45) 0%, rgba(26,26,32,.78) 45%, rgba(26,26,32,.9) 100%); }
}
@media (prefers-reduced-transparency: reduce) { .closed-chip .hc-bg, .closed-chip.has-bg::before { display:none; } }
.token-logo.sm, .token-logo.sm > img, .token-logo.sm > .initial { width:24px; height:24px; }
.token-logo.sm > .initial { font-size:.7rem; }
.token-logo.sm .chain-icon.chain-corner { width:13px; height:13px; right:-3px; bottom:-3px; }
.token-logo.sm .chain-icon.chain-corner img { width:9px; height:9px; }
.cc-name { display:flex; flex-direction:column; min-width:0; flex:1; }
.cc-name .token { font-family:inherit; font-weight:800; font-size:.85rem; color:var(--fg); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.closed-chip .sub { font-size:.68rem; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cc-pnl { display:flex; flex-direction:column; align-items:flex-end; flex:none; }
.cc-pnl .strong { font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-weight:700; font-size:.82rem; }
.cc-pnl .pnl.up { color:var(--up); } .cc-pnl .pnl.down { color:var(--down); }
.active-block .holdings-total { margin:0 0 .6rem; }

/* ---------- holding cards v2: header row, hero profit, quiet labels ---------- */
.holdings-grid { grid-template-columns:repeat(auto-fill, minmax(14rem, 1fr)); gap:.75rem; }
.holding-card { aspect-ratio:auto; justify-content:flex-start; gap:14px; padding:16px; border-radius:14px; }
.holding-card > .hc-head, .holding-card > .hc-stats { position:relative; z-index:1; }
.hc-head { display:flex; align-items:center; gap:.7rem; min-width:0; }
.token-logo.lg, .token-logo.lg > img, .token-logo.lg > .initial { width:46px; height:46px; }
.token-logo.lg > .initial { font-size:1.1rem; }
.token-logo.lg .chain-icon.chain-corner { width:17px; height:17px; right:-3px; bottom:-3px; }
.token-logo.lg .chain-icon.chain-corner img { width:11px; height:11px; }
.hc-title { display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
.hc-title .token { font-family:inherit; font-weight:800; font-size:1rem; line-height:1.2; color:var(--fg); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; border-bottom:0; }
.hc-title .token[data-address]:hover { color:var(--accent); }
.hc-meta { font-size:.75rem; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hc-rank-pill { align-self:flex-start; flex:none; font-size:11px; font-weight:700; line-height:1; padding:4px 7px; border-radius:999px; background:rgba(127,127,127,.16); color:var(--muted); }
.hc-stats { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, auto); gap:0 .75rem; align-items:end; }
.hc-col { display:flex; flex-direction:column; min-width:0; }
.hc-profit { align-items:flex-end; text-align:right; }
.hc-label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); opacity:.75; margin-bottom:6px; }
.hc-num { font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.95rem; font-weight:600; color:var(--fg); white-space:nowrap; }
.hc-sub { margin-top:4px; font-size:.72rem; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hc-hero { font-size:clamp(1.45rem, 1.1rem + 0.9vw, 1.8rem); font-weight:800; line-height:1.05; letter-spacing:-.01em; white-space:nowrap; }
.hc-hero.pnl.up { color:var(--up); } .hc-hero.pnl.down { color:var(--down); } .hc-hero.muted { color:var(--muted); }
.hc-pct { margin-top:6px; font-size:.82rem; font-weight:700; line-height:1; padding:4px 8px; border-radius:999px; white-space:nowrap; }
.hc-pct.up { color:var(--up-soft); background:var(--up-soft-bg); }
.hc-pct.down { color:var(--down-soft); background:var(--down-soft-bg); }

/* ---------- holding cards v3: one base, token tint = identity, corner glow = performance ---------- */
.holding-card {
  --card-base:var(--card);
  --tint-rgb:var(--tint-rgb-light, 128,128,128);
  --tint-a:0;
  --perf-glow:transparent;
  background:
    radial-gradient(circle at 100% 100%, var(--perf-glow), transparent 40%),
    radial-gradient(circle at 18% 10%, rgba(var(--tint-rgb), var(--tint-a)), transparent 45%),
    var(--card-base);
  border:1px solid var(--line);
  padding:16px 20px 16px 16px;
}
.holding-card.tinted { --tint-a:.16; }
.holding-card.perf-up { --perf-glow:rgba(46,160,80,.07); }
.holding-card.perf-down { --perf-glow:rgba(201,42,42,.06); }
@media (prefers-color-scheme: dark) {
  .holding-card { --card-base:#1a1b20; --tint-rgb:var(--tint-rgb-dark, 128,128,128); border-color:rgba(255,255,255,.055); }
  .holding-card.tinted { --tint-a:.22; }
  .holding-card.perf-up { --perf-glow:rgba(46,220,108,.045); }
  .holding-card.perf-down { --perf-glow:rgba(255,80,80,.045); }
}
.hc-profit { padding-right:4px; }
.hc-hero { font-size:clamp(1.25rem, 0.95rem + 0.6vw, 1.5rem); }
.hc-num { font-size:1.02rem; }
/* ---------- thin closed cards: same system as holding cards (base, identity tint, corner PnL glow) ---------- */
.closed-chip {
  --card-base:var(--card);
  --tint-rgb:var(--tint-rgb-light, 128,128,128);
  --tint-a:0;
  --perf-glow:transparent;
  background:
    radial-gradient(circle at 100% 50%, var(--perf-glow), transparent 38%),
    radial-gradient(circle at 26px 50%, rgba(var(--tint-rgb), var(--tint-a)), transparent 72px),
    var(--card-base);
  border:1px solid var(--line);
  padding:.4rem .8rem .4rem .65rem;
}
.closed-chip.tinted { --tint-a:.18; }
.closed-chip.perf-up { --perf-glow:rgba(46,160,80,.08); }
.closed-chip.perf-down { --perf-glow:rgba(201,42,42,.07); }
@media (prefers-color-scheme: dark) {
  .closed-chip { --card-base:#1a1b20; --tint-rgb:var(--tint-rgb-dark, 128,128,128); border-color:rgba(255,255,255,.055); }
  .closed-chip.tinted { --tint-a:.26; }
  .closed-chip.perf-up { --perf-glow:rgba(46,220,108,.055); }
  .closed-chip.perf-down { --perf-glow:rgba(255,80,80,.055); }
}
.cc-pnl { padding-right:2px; }
.cc-pnl .sub.pnl { margin-top:2px; font-size:.68rem; font-weight:700; line-height:1; padding:2px 6px; border-radius:999px; }
.cc-pnl .sub.pnl.up { color:var(--up-soft); background:var(--up-soft-bg); }
.cc-pnl .sub.pnl.down { color:var(--down-soft); background:var(--down-soft-bg); }

/* ---------- profile page v4: full-width header, dashboard below ---------- */
.profile-page { width:100%; margin-inline:auto; }
@media (min-width: 64rem) {
  .col-profile .col-body { padding:0 24px 2rem; }
  .profile-page { width:min(100%, 1600px); }
}
.profile-banner { position:relative; overflow:hidden; aspect-ratio:5 / 1; min-height:110px; max-height:260px; border-radius:0 0 16px 16px;
  background:linear-gradient(135deg, #2a2c35, #1c1d23); }
.profile-banner img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.profile-banner::after { content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to bottom, transparent 55%, rgba(250,250,250,.35) 100%); }
@media (prefers-color-scheme: dark) { .profile-banner::after { background:linear-gradient(to bottom, transparent 55%, rgba(24,25,31,.35) 100%); } }
@media (max-width: 40rem) { .profile-banner { aspect-ratio:3 / 1; border-radius:0 0 12px 12px; } }

.profile-intro { display:flex; align-items:flex-start; gap:20px; padding:0 8px; }
.profile-avatar.xl { width:100px; height:100px; flex:none; margin-top:-50px; border:4px solid var(--bg); background:var(--line); position:relative; z-index:1; font-size:2.2rem; }
.profile-id { min-width:0; padding-top:12px; display:flex; flex-direction:column; gap:6px; }
.profile-id .profile-name { margin:0; font-size:1.6rem; font-weight:800; line-height:1.15; }
.profile-handle-row { margin:0; display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; color:var(--muted); font-weight:600; }
.role-badge { font-size:.72rem; font-weight:800; letter-spacing:.02em; padding:3px 8px; border-radius:999px; color:#b7791f; background:rgba(236,178,46,.14); border:1px solid rgba(236,178,46,.28); }
@media (prefers-color-scheme: dark) { .role-badge { color:#f0c75e; } }
.profile-clan-row { margin:0; display:flex; align-items:center; gap:.4rem; font-size:.82rem; color:var(--muted); }
.profile-clan-row img { border-radius:4px; }
.profile-clan-row .dot { opacity:.6; }
.profile-id .profile-bio { margin:.2rem 0 0; font-size:.92rem; color:var(--fg); max-width:60rem; }
.profile-social { margin:.1rem 0 0; display:flex; flex-wrap:wrap; align-items:baseline; gap:.35rem 1.1rem; font-size:.88rem; color:var(--muted); }
.profile-social strong { color:var(--fg); font-weight:800; }
.profile-social a { font-weight:700; }
@media (max-width: 40rem) {
  .profile-avatar.xl { width:84px; height:84px; margin-top:-42px; }
  .profile-intro { gap:14px; padding:0; }
  .profile-id .profile-name { font-size:1.3rem; }
}

.profile-body { margin-top:1.4rem; padding-top:1.2rem; border-top:1px solid var(--line); }
.profile-body .trading-stats { grid-template-columns:repeat(4, minmax(0, 1fr)) minmax(0, 1.4fr); padding:14px 18px; margin:0 0 1.4rem; border-radius:14px; }
.profile-body .trading-stats dd { font-size:1.35rem; }
@media (max-width: 48rem) { .profile-body .trading-stats { grid-template-columns:repeat(3, minmax(0, 1fr)); } }
@media (max-width: 30rem) { .profile-body .trading-stats { grid-template-columns:repeat(2, minmax(0, 1fr)); } }

.section-head { display:flex; align-items:baseline; justify-content:space-between; gap:.75rem; margin:0 0 .55rem; }
.section-head h3 { margin:0; font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.closed-strip { margin:0 0 1.6rem; }
.closed-row { grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:.6rem; }
.closed-chip { cursor:pointer; transition:transform .12s ease, border-color .12s ease; }
.closed-chip:hover { transform:translateY(-1px); border-color:rgba(127,127,127,.35); }
@media (prefers-reduced-motion: reduce) { .closed-chip { transition:none; } .closed-chip:hover { transform:none; } }
.holdings-summary { margin:0 0 .8rem; color:var(--muted); font-size:.95rem; }
.holdings-summary .big { font-size:1.6rem; font-weight:800; color:var(--fg); font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; margin-right:.2rem; }
.active-holdings .holdings-grid { grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:.75rem; }
.profile-page .fomofeed-panel { margin-top:1.8rem; padding:1.2rem 0 0; border-top:1px solid var(--line); border-bottom:0; }

/* ---------- profile header v5: compact banner and identity ---------- */
.profile-banner { aspect-ratio:auto; height:150px; min-height:0; max-height:none; border-radius:0 0 14px 14px; }
@media (max-width: 63.99rem) { .profile-banner { height:120px; } }
@media (max-width: 40rem) { .profile-banner { aspect-ratio:auto; height:96px; border-radius:0 0 12px 12px; } }
.profile-intro { gap:16px; }
.profile-avatar.xl { width:84px; height:84px; margin-top:-42px; font-size:1.9rem; }
@media (max-width: 40rem) { .profile-avatar.xl { width:72px; height:72px; margin-top:-36px; } }
.profile-id { padding-top:8px; gap:3px; }
.profile-id .profile-name { font-size:1.45rem; }
.profile-handle-row { gap:.45rem; font-size:.92rem; }
.profile-id .profile-bio { margin:.15rem 0 0; font-size:.9rem; line-height:1.4; }
.profile-social { margin:.15rem 0 0; gap:.25rem .5rem; font-size:.86rem; }
.profile-social > * + *::before { content:"·"; margin-right:.5rem; color:var(--muted); opacity:.7; font-weight:400; }
.profile-body { margin-top:20px; padding-top:18px; }

/* ---------- polish pass: rhythm, contrast, closed cards, fomofeed panels ---------- */
:root { --section-gap:24px; --heading-gap:10px; --divider-gap:28px; --muted:#5d5d68; }
@media (prefers-color-scheme: dark) { :root { --muted:#aeaeba; } }

/* profile header: a little more air below the follower row; slightly stronger name */
.profile-header { padding-bottom:4px; }
.profile-id .profile-name { font-size:1.575rem; }
.profile-body { margin-top:var(--divider-gap); padding-top:var(--section-gap); }

/* systematic section rhythm */
.profile-body .trading-stats { margin:0 0 var(--section-gap); }
.closed-strip { margin:0 0 var(--section-gap); }
.section-head { margin:0 0 4px; }
.holdings-summary { margin:0 0 var(--heading-gap); }
.holdings-summary .big { font-size:1.45rem; }
.profile-page .fomofeed-panel { margin-top:var(--divider-gap); padding-top:var(--section-gap); gap:var(--section-gap) 1rem; }

/* tertiary text one step brighter */
.hc-label { opacity:.9; }
.hc-meta, .hc-sub, .closed-chip .sub, .holdings-note, .status, .profile-social .muted { color:var(--muted); }
.profile-social > * + *::before { opacity:.85; }

/* Top closed: taller, easier to scan */
.closed-chip { height:60px; padding:.5rem .85rem .5rem .7rem; gap:.65rem; }
.cc-name { gap:3px; }
.cc-name .token { font-size:.95rem; line-height:1.15; }
.closed-chip .sub { font-size:.72rem; line-height:1.2; }
.cc-pnl { gap:3px; }
.cc-pnl .strong { font-size:.95rem; line-height:1.1; }
.token-logo.sm, .token-logo.sm > img, .token-logo.sm > .initial { width:28px; height:28px; }

/* Active holdings: a little more room under the quantity line */
.holding-card { padding:16px 20px 24px 16px; }

/* On fomofeed: three subtle panels, numbers first */
.fomofeed-panel .ff-block { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:16px 18px; min-height:100%; }
@media (prefers-color-scheme: dark) { .fomofeed-panel .ff-block { background:#1a1b20; border-color:rgba(255,255,255,.055); } }
.fomofeed-panel .profile-section { margin:0 0 var(--heading-gap); }
.fomofeed-panel .stat-grid { grid-template-columns:repeat(3, minmax(0, 1fr)); gap:14px 12px; }
.fomofeed-panel .stat-grid div { display:flex; flex-direction:column-reverse; justify-content:flex-end; gap:2px; }
.fomofeed-panel .stat-grid dd { font-size:1.15rem; }
.fomofeed-panel .stat-grid dt { font-size:.74rem; color:var(--muted); }
.fomofeed-panel .chain-counts { gap:.5rem 1rem; }
.fomofeed-panel .chain-counts li { font-size:.9rem; }
.fomofeed-panel .chain-counts .count { font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-weight:700; color:var(--fg); }
.fomofeed-panel .top-tokens li { padding:.45rem 0; }
@media (max-width: 30rem) { .fomofeed-panel .stat-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); } }

/* ---------- profile header v6: trading stats inside the header ---------- */
.profile-page { container-type:inline-size; container-name:profile; }
.profile-intro { flex-wrap:wrap; }
.profile-id { flex:1 1 0; }

/* narrow (default): stats as a plain row under the identity, between two rules */
.profile-stats { flex:1 1 100%; order:3; display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:12px 20px; margin:18px 0 0; padding:14px 0 0; border-top:1px solid var(--line); }
.profile-stats div { min-width:0; }
.profile-stats dt { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); white-space:nowrap; }
.profile-stats dd { margin:5px 0 0; font-size:20px; font-weight:700; font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; color:var(--fg); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.profile-stats dd.pnl.up { color:var(--up); } .profile-stats dd.pnl.down { color:var(--down); } .profile-stats dd.muted { color:var(--muted); }
.profile-stats .total-pnl { cursor:help; }
@container profile (max-width: 560px) { .profile-stats { grid-template-columns:repeat(3, minmax(0, 1fr)); } }

/* wide: identity left, stats right, faint dividers, no box */
@container profile (min-width: 1100px) {
  .profile-intro { flex-wrap:nowrap; }
  .profile-stats { flex:0 0 auto; order:0; align-self:flex-start; margin:16px 0 0; padding:2px 0 2px 28px; border-top:0; border-left:1px solid var(--line);
    grid-template-columns:repeat(4, minmax(72px, auto)) minmax(110px, auto); gap:0 28px; }
  .profile-stats dd { font-size:22px; }
  .profile-stats .total-pnl { padding-left:28px; border-left:1px solid var(--line); }
}
/* the old separate stats card is gone; tighten the divider above Top closed accordingly */
.profile-body { margin-top:var(--divider-gap); padding-top:var(--section-gap); }

/* ---------- profile header v7: stats integrated beside the identity ---------- */
.profile-stats dt { font-size:10px; opacity:.85; }
@container profile (min-width: 1100px) {
  .profile-id { flex:0 1 38rem; }
  .profile-stats {
    flex:1 1 auto; max-width:640px; margin:21px 0 0 40px; padding:0; border-left:0;
    grid-template-columns:repeat(4, minmax(64px, 1fr)) minmax(96px, 1.2fr); gap:0 32px;
  }
  .profile-stats .total-pnl { position:relative; padding-left:0; border-left:0; }
  .profile-stats .total-pnl::before { content:""; position:absolute; left:-16px; top:2px; bottom:2px; border-left:1px solid var(--line); }
}

/* ---------- profile header v8: stats vertically centred on the identity block ---------- */
@container profile (min-width: 1100px) {
  .profile-intro { align-items:flex-start; }
  .profile-stats {
    flex:0 0 auto; max-width:none; align-self:center; margin:0 0 0 40px;
    transform:translateY(8px);   /* optical correction for the avatar overlapping the banner */
    grid-template-columns:repeat(4, 90px) 120px; gap:0 24px; align-items:center;
  }
  .profile-stats .total-pnl::before { left:-12px; }
}

/* ---------- token links (token names now link to token pages; hover card still opens) ---------- */
a.token { color:inherit; text-decoration:none; }
a.token:hover { color:var(--accent); text-decoration:none; }
.thesis-actions[hidden], .markets-panel[hidden] { display:none !important; }

/* ---------- token page ---------- */
body.page-token main { max-width:1280px; }
.token-page { display:flex; flex-direction:column; gap:var(--section-gap); padding-block:.5rem 2rem; }
.token-header {
  --card-base:var(--card); --tint-rgb:var(--tint-rgb-light, 128,128,128); --tint-a:0;
  background:radial-gradient(circle at 48px 44px, rgba(var(--tint-rgb), var(--tint-a)), transparent 220px), var(--card-base);
  border:1px solid var(--line); border-radius:16px; padding:20px 22px;
}
.token-header.tinted { --tint-a:.16; }
@media (prefers-color-scheme: dark) {
  .token-header { --card-base:#1a1b20; --tint-rgb:var(--tint-rgb-dark, 128,128,128); border-color:rgba(255,255,255,.055); }
  .token-header.tinted { --tint-a:.24; }
}
.th-top { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.token-logo.xl, .token-logo.xl > img, .token-logo.xl > .initial { width:64px; height:64px; }
.token-logo.xl > .initial { font-size:1.5rem; }
.token-logo.xl .chain-icon.chain-corner { width:20px; height:20px; right:-2px; bottom:-2px; }
.token-logo.xl .chain-icon.chain-corner img { width:13px; height:13px; }
.th-names { min-width:0; flex:1; }
.th-names h1 { margin:0; font-size:1.6rem; font-weight:800; line-height:1.15; overflow-wrap:anywhere; }
.th-sub { margin:.3rem 0 0; display:flex; flex-wrap:wrap; align-items:center; gap:.45rem; color:var(--muted); font-size:.85rem; }
.ticker { font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-weight:600; color:var(--fg); }
.chain-chip { display:inline-flex; align-items:center; gap:.35rem; padding:2px 9px 2px 3px; border-radius:999px; border:1px solid var(--line); font-weight:600; }
.chain-chip .chain-badge { width:18px; height:18px; }
.th-price { display:flex; flex-direction:column; align-items:flex-end; gap:6px; margin-left:auto; }
.th-price .price { font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size:1.7rem; font-weight:800; line-height:1; }
.th-stats { display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:12px 20px; margin:18px 0 0; padding:14px 0 0; border-top:1px solid var(--line); }
.th-stats div { min-width:0; }
.th-stats dt { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.th-stats dd { margin:5px 0 0; font-size:1.2rem; font-weight:700; font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
@media (max-width: 40rem) { .th-stats { grid-template-columns:repeat(3, minmax(0, 1fr)); } .th-price { align-items:flex-start; margin-left:0; } }
.th-meta { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem 1.2rem; margin-top:14px; font-size:.85rem; }
.th-meta .socials { display:flex; flex-wrap:wrap; gap:.4rem .9rem; font-weight:700; }
.th-meta .contract { display:inline-flex; align-items:center; gap:.45rem; min-width:0; flex-wrap:wrap; }
.th-meta .contract .label { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.th-meta .contract code { font-size:.78rem; overflow-wrap:anywhere; }
.copy-btn { font:inherit; font-size:.75rem; font-weight:700; padding:2px 10px; border-radius:999px; border:1px solid var(--line); background:transparent; color:var(--fg); cursor:pointer; }
.copy-btn:hover { border-color:var(--accent); color:var(--accent); }
.copy-btn:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.th-meta .status { margin-left:auto; }

/* holders: holdings-card style */
.holders-grid { grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:.75rem; }
.holder-avatar > img, .holder-avatar > .initial { border-radius:50%; }
.holder-name { font-weight:800; font-size:1rem; color:var(--fg); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
a.holder-name:hover { color:var(--accent); text-decoration:none; }
.holder-name.anonymous { font-style:italic; font-weight:700; color:var(--muted); }
.hc-head .badge.dev { flex:none; }
.hc-foot { position:relative; z-index:1; display:flex; flex-wrap:wrap; align-items:baseline; gap:.3rem 1rem; padding-top:10px; border-top:1px solid var(--line);
  font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.8rem; }
@media (prefers-color-scheme: dark) { .hc-foot { border-top-color:rgba(255,255,255,.06); } }
.hc-foot .hc-label { margin:0 .3rem 0 0; font-family:"Manrope", system-ui, sans-serif; }
.hc-foot .thesis-link { margin-left:auto; font-family:"Manrope", system-ui, sans-serif; font-weight:700; }
.holding-card > .hc-foot { position:relative; z-index:1; }

/* theses on this token: feed cards in two columns when there's room */
.token-theses-list { columns:2 420px; column-gap:.75rem; }
.token-theses-list .thesis { break-inside:avoid; }

/* hover card link to the token page */
.tp-page { display:inline-block; margin-top:.45rem; font-weight:700; }

/* token lookup page */
.lookup-address { overflow-wrap:anywhere; color:var(--muted); }

/* /tokens index */
.index-title { margin:0; font-size:1.5rem; font-weight:800; text-transform:none; letter-spacing:0; color:var(--fg); }
.token-index { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.4rem; }
.token-row {
  --card-base:var(--card); --tint-rgb:var(--tint-rgb-light, 128,128,128); --tint-a:0;
  background:radial-gradient(circle at 58px 50%, rgba(var(--tint-rgb), var(--tint-a)), transparent 90px), var(--card-base);
  border:1px solid var(--line); border-radius:12px;
}
.token-row.tinted { --tint-a:.16; }
@media (prefers-color-scheme: dark) {
  .token-row { --card-base:#1a1b20; --tint-rgb:var(--tint-rgb-dark, 128,128,128); border-color:rgba(255,255,255,.055); }
  .token-row.tinted { --tint-a:.22; }
}
.token-row-link { display:grid; grid-template-columns:2rem 28px minmax(0, 1fr) 7rem 5rem 6rem 7rem; align-items:center; gap:.75rem; padding:.55rem .9rem; color:var(--fg); }
.token-row-link:hover { text-decoration:none; }
.token-row:hover { border-color:rgba(127,127,127,.35); }
.tr-rank { color:var(--muted); font-size:.8rem; text-align:right; }
.tr-name { display:flex; flex-direction:column; min-width:0; }
.tr-label { font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tr-sub { font-size:.75rem; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tr-num { font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.85rem; text-align:right; white-space:nowrap; }
.tr-count { text-align:right; font-size:.82rem; color:var(--muted); white-space:nowrap; }
.tr-count strong { color:var(--fg); }
@media (max-width: 48rem) { .token-row-link { grid-template-columns:1.5rem 28px minmax(0, 1fr) auto; } .tr-num, .tr-mcap { display:none; } }

/* ---------- token page v2: theses in the left rail; thin holder cards (holding-card modifier) ---------- */
body.page-token-detail .token-page { padding-block:.5rem 2rem; }
body.page-token-detail .profile-dashboard .col-feed .col-head { align-items:baseline; }
.holders-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:.6rem; }
@container profile (max-width: 700px) { .holders-grid { grid-template-columns:minmax(0, 1fr); } }
@media (max-width: 43.75rem) { .holders-grid { grid-template-columns:minmax(0, 1fr); } }
.holding-card.holder-card {
  gap:8px; padding:10px 14px 10px 10px; border-radius:12px;
  /* same layers as .holding-card, with the token tint glowing behind the avatar */
  background:
    radial-gradient(circle at 100% 100%, var(--perf-glow), transparent 40%),
    radial-gradient(circle at 62px 26px, rgba(var(--tint-rgb), var(--tint-a)), transparent 70px),
    var(--card-base);
}
.holder-card .hc-head { gap:.6rem; align-items:center; }
.holder-card .hc-rank-pill { align-self:center; min-width:2.1rem; text-align:center; }
.holder-card .holder-avatar, .holder-card .holder-avatar > img, .holder-card .holder-avatar > .initial { width:36px; height:36px; }
.holder-card .holder-avatar > .initial { font-size:.85rem; }
.holder-card .hc-title { gap:1px; }
.holder-line { display:flex; align-items:center; gap:.35rem; min-width:0; }
.holder-line .holder-name { font-size:.92rem; flex:0 1 auto; }
.holder-line .role-badge { font-size:.62rem; padding:1px 6px; flex:none; }
.holder-line .badge { flex:none; }
.holder-card .hc-meta { font-size:.72rem; }
.holder-card .hc-col { flex:none; display:flex; flex-direction:column; min-width:0; }
.holder-card .holder-value { align-items:flex-end; text-align:right; margin-left:auto; }
.holder-card .hc-profit { align-items:flex-end; text-align:right; min-width:4.8rem; padding-right:0; cursor:help; }
.holder-card .hc-num { font-size:.9rem; }
.holder-card .hc-num.pnl.up { color:var(--up); } .holder-card .hc-num.pnl.down { color:var(--down); }
.holder-card .hc-sub { margin-top:2px; font-size:.7rem; }
.holder-card .hc-pct { margin-top:3px; font-size:.7rem; padding:2px 6px; }
.holder-thesis { position:relative; z-index:1; margin:0; padding:7px 2px 0 46px; border-top:1px solid var(--line); font-size:.82rem; line-height:1.4; color:var(--fg); overflow-wrap:anywhere; }
@media (prefers-color-scheme: dark) { .holder-thesis { border-top-color:rgba(255,255,255,.06); } }
.holder-thesis a { font-weight:700; white-space:nowrap; }
.holder-thesis.none { color:var(--muted); font-style:italic; }
@container profile (max-width: 420px) { .holder-thesis { padding-left:2px; } .holder-card .hc-meta { display:none; } }

/* generated by tint.py: clamped token tint palette (do not edit by hand) */
.tint-grey { --tint-rgb-light:158,158,158; --tint-rgb-dark:107,107,107; }
.tint-h00s1 { --tint-rgb-light:189,117,117; --tint-rgb-dark:139,75,75; }
.tint-h00s2 { --tint-rgb-light:207,89,89; --tint-rgb-dark:161,54,54; }
.tint-h01s1 { --tint-rgb-light:189,135,117; --tint-rgb-dark:139,91,75; }
.tint-h01s2 { --tint-rgb-light:207,118,89; --tint-rgb-dark:161,80,54; }
.tint-h02s1 { --tint-rgb-light:189,153,117; --tint-rgb-dark:139,107,75; }
.tint-h02s2 { --tint-rgb-light:207,148,89; --tint-rgb-dark:161,107,54; }
.tint-h03s1 { --tint-rgb-light:189,171,117; --tint-rgb-dark:139,123,75; }
.tint-h03s2 { --tint-rgb-light:207,177,89; --tint-rgb-dark:161,134,54; }
.tint-h04s1 { --tint-rgb-light:189,189,117; --tint-rgb-dark:139,139,75; }
.tint-h04s2 { --tint-rgb-light:207,207,89; --tint-rgb-dark:161,161,54; }
.tint-h05s1 { --tint-rgb-light:171,189,117; --tint-rgb-dark:123,139,75; }
.tint-h05s2 { --tint-rgb-light:177,207,89; --tint-rgb-dark:134,161,54; }
.tint-h06s1 { --tint-rgb-light:153,189,117; --tint-rgb-dark:107,139,75; }
.tint-h06s2 { --tint-rgb-light:148,207,89; --tint-rgb-dark:107,161,54; }
.tint-h07s1 { --tint-rgb-light:135,189,117; --tint-rgb-dark:91,139,75; }
.tint-h07s2 { --tint-rgb-light:118,207,89; --tint-rgb-dark:80,161,54; }
.tint-h08s1 { --tint-rgb-light:117,189,117; --tint-rgb-dark:75,139,75; }
.tint-h08s2 { --tint-rgb-light:89,207,89; --tint-rgb-dark:54,161,54; }
.tint-h09s1 { --tint-rgb-light:117,189,135; --tint-rgb-dark:75,139,91; }
.tint-h09s2 { --tint-rgb-light:89,207,118; --tint-rgb-dark:54,161,80; }
.tint-h10s1 { --tint-rgb-light:117,189,153; --tint-rgb-dark:75,139,107; }
.tint-h10s2 { --tint-rgb-light:89,207,148; --tint-rgb-dark:54,161,107; }
.tint-h11s1 { --tint-rgb-light:117,189,171; --tint-rgb-dark:75,139,123; }
.tint-h11s2 { --tint-rgb-light:89,207,177; --tint-rgb-dark:54,161,134; }
.tint-h12s1 { --tint-rgb-light:117,189,189; --tint-rgb-dark:75,139,139; }
.tint-h12s2 { --tint-rgb-light:89,207,207; --tint-rgb-dark:54,161,161; }
.tint-h13s1 { --tint-rgb-light:117,171,189; --tint-rgb-dark:75,123,139; }
.tint-h13s2 { --tint-rgb-light:89,177,207; --tint-rgb-dark:54,134,161; }
.tint-h14s1 { --tint-rgb-light:117,153,189; --tint-rgb-dark:75,107,139; }
.tint-h14s2 { --tint-rgb-light:89,148,207; --tint-rgb-dark:54,107,161; }
.tint-h15s1 { --tint-rgb-light:117,135,189; --tint-rgb-dark:75,91,139; }
.tint-h15s2 { --tint-rgb-light:89,118,207; --tint-rgb-dark:54,80,161; }
.tint-h16s1 { --tint-rgb-light:117,117,189; --tint-rgb-dark:75,75,139; }
.tint-h16s2 { --tint-rgb-light:89,89,207; --tint-rgb-dark:54,54,161; }
.tint-h17s1 { --tint-rgb-light:135,117,189; --tint-rgb-dark:91,75,139; }
.tint-h17s2 { --tint-rgb-light:118,89,207; --tint-rgb-dark:80,54,161; }
.tint-h18s1 { --tint-rgb-light:153,117,189; --tint-rgb-dark:107,75,139; }
.tint-h18s2 { --tint-rgb-light:148,89,207; --tint-rgb-dark:107,54,161; }
.tint-h19s1 { --tint-rgb-light:171,117,189; --tint-rgb-dark:123,75,139; }
.tint-h19s2 { --tint-rgb-light:177,89,207; --tint-rgb-dark:134,54,161; }
.tint-h20s1 { --tint-rgb-light:189,117,189; --tint-rgb-dark:139,75,139; }
.tint-h20s2 { --tint-rgb-light:207,89,207; --tint-rgb-dark:161,54,161; }
.tint-h21s1 { --tint-rgb-light:189,117,171; --tint-rgb-dark:139,75,123; }
.tint-h21s2 { --tint-rgb-light:207,89,177; --tint-rgb-dark:161,54,134; }
.tint-h22s1 { --tint-rgb-light:189,117,153; --tint-rgb-dark:139,75,107; }
.tint-h22s2 { --tint-rgb-light:207,89,148; --tint-rgb-dark:161,54,107; }
.tint-h23s1 { --tint-rgb-light:189,117,135; --tint-rgb-dark:139,75,91; }
.tint-h23s2 { --tint-rgb-light:207,89,118; --tint-rgb-dark:161,54,80; }
