:root{
  --void:#0d1410;
  --panel:#141b16;
  --panel-hi:#1c261e;
  --line:rgba(232,242,229,.14);
  --ink:#eaf2e6;
  --ink-dim:#9fb098;
  --green:#39ff88;
  --green-dim:#1f7a45;
  --amber:#ffb648;
  --blue:#4d9fff;
  --purple:#b48cff; /* stock-pair accent */
  --red:#ff6b6b;
  --maxw:1160px; /* was 1080 — lets Explore fit 5 cards per row on wide monitors */
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
/* Keyboard focus: one consistent ring, only for keyboard users
   (:focus-visible), never on mouse clicks. */
:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:6px;}
.btn:focus-visible, .btn-cute:focus-visible, .btn-launch-cta:focus-visible, .wallet-pill:focus-visible,
nav a:focus-visible, .launch-card:focus-visible, .btn-copy:focus-visible{outline:2px solid var(--green);outline-offset:3px;}
input:focus-visible, select:focus-visible, textarea:focus-visible{outline:2px solid var(--green);outline-offset:0;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *, *::before, *::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
}
body{
  margin:0;background:var(--void);color:var(--ink);
  font-family:'Sora',sans-serif;font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
  background-image:
    radial-gradient(1000px 480px at 10% -10%, rgba(57,255,136,.08), transparent 60%),
    radial-gradient(800px 450px at 110% 10%, rgba(255,182,72,.06), transparent 55%);
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
/* Sticky header: anchors (#story, #plan, #app) need to land BELOW it,
   not underneath it. Overridden per breakpoint where the header is
   taller (two rows). */
#top, #story, #plan, #app{scroll-margin-top:76px;}
.pixel{font-family:'Silkscreen',monospace;}
h1,h2,h3{font-family:'Silkscreen',monospace;margin:0 0 .4em;letter-spacing:.4px;line-height:1.2;}
h1{font-size:clamp(1.9rem,4vw,2.6rem);}
h2{font-size:1.4rem;color:var(--green);}
h3{font-size:1.05rem;}
p{margin:0 0 1em;color:var(--ink-dim);}
code{font-family:monospace;color:var(--green);}

header{position:sticky;top:0;z-index:10;background:rgba(13,20,16,.85);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.headbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;max-width:var(--maxw);margin:0 auto;gap:16px;flex-wrap:nowrap;}
.brand{display:flex;align-items:center;gap:8px;font-family:'Silkscreen';font-size:1rem;}
.brand .tag{font-family:'Sora';font-size:.7rem;color:var(--ink-dim);border:1px solid var(--line);border-radius:999px;padding:2px 8px;}
nav{display:flex;gap:18px;font-size:.88rem;color:var(--ink-dim);}
nav a:hover{color:var(--green);}

.btn{
  display:inline-flex;align-items:center;gap:6px;font-weight:700;font-family:'Sora';
  border-radius:9px;padding:10px 18px;border:1px solid var(--line);cursor:pointer;font-size:.9rem;
}
.btn-primary{background:var(--green);color:#08150c;border-color:transparent;}
.btn-primary:hover{background:#5dffa2;}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;}
.btn-ghost{background:transparent;color:var(--ink);}
.btn-ghost:hover{border-color:var(--green);color:var(--green);}
.btn-danger{background:transparent;color:var(--red);border-color:rgba(255,107,107,.4);}

main{padding:38px 0 80px;}
.page-head{display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:16px;margin-bottom:26px;}

.explore-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px;}
.explore-search-input{flex:0 1 300px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;color:var(--ink);font-family:'Sora';font-size:.88rem;}
.explore-search-input:focus{outline:none;border-color:var(--green);}
.explore-toolbar .quote-select{width:auto;flex:0 0 auto;padding:10px 12px;}
/* chips share the row with search + sort on desktop; they wrap to their
   own line on tablets, and become a scrolling row on phones (see ≤640) */
.explore-filter-chips{display:flex;gap:8px;flex-wrap:wrap;flex:1 1 auto;min-width:0;}
.filter-chip{font-family:'Silkscreen';font-size:.68rem;padding:6px 12px;border-radius:999px;border:1px solid var(--line);color:var(--ink-dim);cursor:pointer;transition:all .15s ease;white-space:nowrap;}
.filter-chip:hover{border-color:var(--green);color:var(--green);}
.filter-chip.active{background:var(--green);border-color:var(--green);color:#04140a;}

.grid-launches{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:16px;}
.launch-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;transition:border-color .15s ease;position:relative;min-width:0;}
.launch-card:hover{border-color:var(--green);}
.launch-card.card-type-curve{border-color:rgba(77,159,255,.35);}
.launch-card.card-type-curve:hover{border-color:var(--blue);}
.launch-card.card-type-curve .bar-fill{background:var(--blue);}
.launch-card.card-type-paired{border-color:rgba(180,140,255,.35);}
.launch-card.card-type-paired:hover{border-color:var(--purple);}
.launch-card .sym{font-family:'Silkscreen';font-size:1.1rem;color:var(--ink);}
.launch-card .name{font-size:.85rem;color:var(--ink-dim);margin-bottom:10px;overflow-wrap:break-word;min-width:0;}
.launch-card .bar{height:6px;border-radius:99px;background:var(--panel-hi);overflow:hidden;margin:10px 0 6px;}
.launch-card .bar-fill{height:100%;background:var(--green);}
.launch-card .meta{font-family:'Sora';font-size:.72rem;color:var(--ink-dim);display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:6px;}
.launch-card .grad-tag{font-family:'Silkscreen';font-size:.62rem;color:var(--amber);border:1px solid rgba(255,182,72,.4);border-radius:999px;padding:2px 8px;display:inline-block;margin-top:8px;}

.card-badges{position:absolute;top:10px;right:10px;display:flex;gap:5px;z-index:1;}
.card-badge{font-family:'Silkscreen';font-size:.58rem;padding:2px 7px;border-radius:999px;backdrop-filter:blur(4px);}
.card-badge.new{color:#04140a;background:var(--green);}
.card-badge.up{color:var(--green);background:rgba(57,255,136,.14);border:1px solid rgba(57,255,136,.35);}
.card-badge.down{color:var(--red);background:rgba(255,107,107,.14);border:1px solid rgba(255,107,107,.35);}
.card-badge.home-pin{color:var(--amber);background:rgba(255,182,72,.14);border:1px solid rgba(255,182,72,.4);}
.home-v1-tag{display:inline-block;vertical-align:middle;margin-left:6px;font-family:'Silkscreen';font-size:.5rem;color:var(--amber);border:1px solid rgba(255,182,72,.5);border-radius:6px;padding:2px 6px;letter-spacing:.04em;}
.launch-card.card-type-home{border-color:rgba(255,182,72,.35);}
.launch-card.card-type-home:hover{border-color:rgba(255,182,72,.65);}
.home-tag{font-family:'Silkscreen';font-size:.55rem;color:var(--amber);}
.card-age{color:var(--ink-dim);flex-shrink:0;white-space:nowrap;}
.card-socials{display:flex;gap:12px;margin-top:8px;align-items:center;}
.card-socials span{color:var(--ink-dim);transition:color .15s ease;cursor:pointer;display:inline-flex;}
.card-socials span:hover{color:var(--green);}
.card-socials svg{width:18px;height:18px;}

/* Loading skeletons — same box as a real card, grey blocks in the shape of
   thumb + text lines, slow shimmer. Used by Explore, Profile, the token
   page and the home carousel while on-chain data is still arriving. */
.skeleton-card{pointer-events:none;border-color:var(--line) !important;}
.sk{background:linear-gradient(90deg,var(--panel-hi) 25%,rgba(255,255,255,.06) 50%,var(--panel-hi) 75%);background-size:200% 100%;animation:sk-shimmer 1.4s ease-in-out infinite;border-radius:8px;}
.sk-thumb{width:100%;aspect-ratio:1/1;border-radius:16px;margin-bottom:12px;}
.sk-line{height:12px;margin:8px 0;}
.sk-line.w30{width:30%;} .sk-line.w40{width:40%;} .sk-line.w50{width:50%;}
.sk-line.w60{width:60%;} .sk-line.w70{width:70%;} .sk-line.w80{width:80%;}
@keyframes sk-shimmer{0%{background-position:200% 0;}100%{background-position:-200% 0;}}

.empty-state{border:1px dashed var(--line);border-radius:12px;padding:40px;text-align:center;color:var(--ink-dim);}

.form-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px;max-width:520px;}
.field{margin-bottom:18px;}
.field label{display:block;font-size:.82rem;color:var(--ink-dim);margin-bottom:6px;}
.field input{
  width:100%;background:var(--void);border:1px solid var(--line);border-radius:8px;
  color:var(--ink);padding:11px 13px;font-family:'Sora';font-size:.92rem;
}
.field input:focus{outline:none;border-color:var(--green);}
.field .hint{font-size:.75rem;color:var(--ink-dim);margin-top:5px;}

/* ============ Token detail page (one layout for every launch type) ============ */
.back-link{display:inline-block;font-size:.82rem;color:var(--ink-dim);margin-bottom:12px;}
.back-link:hover{color:var(--green);}
.token-head{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:14px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 20px;}
.token-head-main{flex:1 1 320px;min-width:0;}
.token-head-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.token-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.token-head h1{margin:0;font-size:1.6rem;}
.token-name{margin:2px 0 8px;color:var(--ink-dim);}
.token-ca-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.token-ca-row code{font-family:monospace;font-size:.82rem;color:var(--ink);}
.token-launched{font-size:.74rem;color:var(--ink-dim);}
.token-detail-thumb.placeholder{display:flex;align-items:center;justify-content:center;font-family:'Silkscreen';font-size:1.2rem;color:var(--ink-dim);background:var(--panel-hi);}
/* type pill — same three colours as the Explore cards */
.type-pill{display:inline-block;font-family:'Silkscreen';font-size:.6rem;padding:3px 9px;border-radius:100px;border:1px solid;white-space:nowrap;vertical-align:middle;}
.type-pill.tt-curve{color:var(--blue);border-color:rgba(77,159,255,.45);background:rgba(77,159,255,.08);}
.type-pill.tt-hybrid{color:var(--amber);border-color:rgba(255,182,72,.45);background:rgba(255,182,72,.08);}
.type-pill.tt-instant{color:var(--green);border-color:rgba(57,255,136,.45);background:rgba(57,255,136,.08);}
.type-pill.tt-paired{color:var(--purple);border-color:rgba(180,140,255,.45);background:rgba(180,140,255,.08);}
/* status strip — graduation progress (curve) or live-pool state (v4 modes) */
.token-status{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:14px;}
.token-status-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:8px;font-size:.84rem;}
.token-status-row strong{color:var(--ink);}
.token-status-row span{color:var(--ink-dim);}
.token-status .bar{height:6px;background:var(--panel-hi);border-radius:100px;overflow:hidden;}
.token-status .bar-fill{height:100%;background:var(--green);}
.token-status.tt-curve .bar-fill{background:var(--blue);}
.token-status.tt-hybrid .bar-fill{background:var(--amber);}
.token-status.tt-paired .bar-fill{background:var(--purple);}
.token-status p{margin:8px 0 0;font-size:.76rem;color:var(--ink-dim);}
.token-stat-grid{grid-template-columns:repeat(5,1fr);margin-bottom:16px;}
.card-dex{font-size:.72rem;color:var(--ink-dim);}
.card-dex b{color:var(--ink);font-weight:600;}
.stat-sub.pos{color:var(--green);} .stat-sub.neg{color:var(--red);}
.chart-price{font-family:'Silkscreen';font-size:.85rem;color:var(--ink);}
.chart-price.pos{color:var(--green);} .chart-price.neg{color:var(--red);}
.chart-card-head .muted{color:var(--ink-dim);font-weight:400;font-size:.78rem;}
/* layout: chart + trade side by side, everything else under the chart */
.token-layout{display:grid;grid-template-columns:1.3fr 1fr;grid-template-areas:"chart trade" "rest trade";gap:20px;align-items:start;}
.token-chart{grid-area:chart;}
.token-trade{grid-area:trade;position:sticky;top:84px;}
.token-rest{grid-area:rest;display:flex;flex-direction:column;gap:16px;}
.details-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;}
.details-card h3{margin:0 0 12px;}
.details-grid{display:grid;grid-template-columns:150px 1fr;gap:9px 16px;font-size:.84rem;}
.details-grid .dt{color:var(--ink-dim);}
.details-grid .dd{color:var(--ink);min-width:0;overflow-wrap:anywhere;}
.details-grid .dd .mono-link{max-width:100%;}
.how-it-trades{margin-top:12px;}
.err-detail{margin-top:10px;font-size:.7rem;color:var(--ink-dim);word-break:break-all;}
/* trade card extras */
.field-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;}
.field-bal{font-size:.72rem;color:var(--ink-dim);}
.chip-row{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;}
.chip{font-family:'Sora';font-size:.72rem;font-weight:600;color:var(--ink-dim);background:var(--panel-hi);border:1px solid var(--line);border-radius:100px;padding:4px 10px;cursor:pointer;transition:all .15s ease;}
.chip:hover{color:var(--green);border-color:var(--green);}
.quote-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:10px 12px;background:var(--void);border:1px solid var(--line);border-radius:10px;font-size:.84rem;color:var(--ink-dim);}
.quote-row strong{color:var(--ink);font-size:.9rem;}
.quote-note{font-size:.7rem;color:#7b8c76;margin:6px 0 12px;}
.btn-sell{background:var(--red) !important;color:#170808 !important;border-color:var(--red) !important;}
.trade-fee-note{font-size:.72rem;color:var(--ink-dim);margin:10px 0 0;line-height:1.4;}
.stat-row{display:flex;gap:14px;flex-wrap:wrap;margin:18px 0;}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 16px;font-family:'Sora';}
.stat .k{font-family:'Silkscreen';font-size:1.1rem;color:var(--green);}
.stat .v{font-size:.72rem;color:var(--ink-dim);}

.trade-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;}
.trade-tabs{display:flex;gap:8px;margin-bottom:16px;}
.trade-tab{flex:1;text-align:center;padding:9px;border-radius:8px;border:1px solid var(--line);cursor:pointer;font-family:'Silkscreen';font-size:.78rem;}
.trade-tab.active-buy{background:var(--green);color:#08150c;border-color:transparent;}
.trade-tab.active-sell{background:var(--red);color:#170808;border-color:transparent;}

.status{font-size:.82rem;padding:10px 12px;border-radius:8px;margin-top:14px;}
.status.info{background:rgba(57,255,136,.08);border:1px solid rgba(57,255,136,.25);color:var(--green);}
.status.error{background:rgba(255,107,107,.08);border:1px solid rgba(255,107,107,.3);color:var(--red);}
.status.pending{background:rgba(255,182,72,.08);border:1px solid rgba(255,182,72,.3);color:var(--amber);}

.wallet-pill{font-family:monospace;font-size:.8rem;background:var(--panel-hi);border:1px solid var(--line);border-radius:999px;padding:8px 14px;color:var(--ink);cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:6px;}
.wallet-dropdown-wrap{position:relative;}
.wallet-pill-chevron{width:14px;height:14px;transition:transform .15s ease;}
.wallet-dropdown-wrap:has(.wallet-dropdown.open) .wallet-pill-chevron{transform:rotate(180deg);}
.wallet-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:0 12px 32px rgba(0,0,0,.4);display:none;flex-direction:column;gap:2px;z-index:50;}
.wallet-dropdown.open{display:flex;}
.wallet-dropdown-address{display:flex;align-items:center;justify-content:space-between;padding:8px 10px 2px;}
.wallet-dropdown-address code{font-family:monospace;font-size:.82rem;color:var(--ink);}
.wallet-dropdown-network{padding:4px 10px 8px;font-size:.72rem;color:var(--amber);border-bottom:1px solid var(--line);margin-bottom:4px;}
.wallet-dropdown-network::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--amber);margin-right:6px;vertical-align:middle;}
.wallet-dropdown-network.network-bad{color:var(--red);}
.wallet-dropdown-network.network-bad::before{background:var(--red);}
.wallet-dropdown-item{display:block;padding:10px;border-radius:8px;font-size:.85rem;color:var(--ink-dim);text-decoration:none;cursor:pointer;transition:all .15s ease;}
.wallet-dropdown-item:hover{background:var(--panel-hi);color:var(--ink);}
.wallet-dropdown-disconnect{color:var(--red);}
.wallet-dropdown-disconnect:hover{background:rgba(255,107,107,.1);color:var(--red);}
.profile-header{display:flex;align-items:center;gap:16px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;}
.profile-avatar{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--green),var(--amber));display:flex;align-items:center;justify-content:center;font-family:'Silkscreen';font-size:1rem;color:#04140a;flex-shrink:0;}
.profile-address-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.profile-address-row code{font-family:monospace;font-size:1rem;color:var(--ink);}
.profile-tabs{display:flex;gap:8px;flex-wrap:wrap;}
.wallet-pill:hover{border-color:var(--red);color:var(--red);}
.disconnect-x{opacity:.6;font-weight:700;}
.wallet-pill:hover .disconnect-x{opacity:1;}
/* badge sits BESIDE the pill, not stacked above it — the stack made the
   header two rows tall on desktop for one small label */
.wallet-info{display:flex;flex-direction:row;align-items:center;gap:8px;}
.network-badge{font-family:'Silkscreen';font-size:.6rem;letter-spacing:.02em;color:var(--green);padding:3px 9px 3px 7px;border-radius:100px;background:rgba(57,255,136,.1);border:1px solid rgba(57,255,136,.35);display:inline-flex;align-items:center;gap:5px;}
.network-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 6px rgba(57,255,136,.7);flex-shrink:0;}
.network-badge.network-bad{color:var(--red);background:rgba(255,107,107,.1);border-color:rgba(255,107,107,.35);}
.network-badge.network-bad::before{background:var(--red);box-shadow:0 0 6px rgba(255,107,107,.7);}

footer{border-top:1px solid var(--line);color:var(--ink-dim);font-size:.88rem;}

/* ============ Two ways to launch (full-screen entry gate) ============ */

.launch-gate{position:fixed;inset:0;z-index:999;background:#000;}
.lg-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;display:block;background:#000;}
.lg-hit{position:absolute;top:0;bottom:0;width:50%;background:none;border:none;padding:0;margin:0;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.lg-hit-left{left:0;}
.lg-hit-right{right:0;}

/* ============ $HOME hero + stats (cute + professional layer) ============ */

.home-hero{
  position:relative;
  overflow:hidden;
  padding:56px 0 40px;
  background:
    radial-gradient(700px 380px at 20% 0%, rgba(57,255,136,.14), transparent 60%),
    radial-gradient(600px 380px at 90% 20%, rgba(255,182,72,.12), transparent 55%);
  border-bottom:1px solid var(--line);
}
.home-hero-inner{position:relative;}
.sticker-field{position:absolute;inset:0;pointer-events:none;}
.sticker{
  position:absolute;width:88px;height:88px;object-fit:cover;
  border-radius:14px;border:3px solid var(--void);
  box-shadow:0 6px 0 rgba(0,0,0,.35);
  opacity:.9;
}
.sticker.s1{top:0;right:6%;transform:rotate(-8deg);}
.sticker.s2{top:14%;right:22%;transform:rotate(6deg);width:64px;height:64px;}
.sticker.s3{top:2%;left:2%;transform:rotate(7deg);}
.sticker.s4{bottom:0;right:2%;transform:rotate(-5deg);width:70px;height:70px;}
.sticker.s5{bottom:8%;left:10%;transform:rotate(-9deg);width:60px;height:60px;}
.sticker.s6{top:40%;right:1%;transform:rotate(4deg);width:56px;height:56px;display:none;}
.sticker.s7{bottom:2%;left:32%;transform:rotate(5deg);width:56px;height:56px;display:none;}
.sticker.s8{top:55%;left:0%;transform:rotate(-4deg);width:56px;height:56px;display:none;}

.home-hero-content{position:relative;z-index:2;max-width:640px;}
.eyebrow-chip{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--panel-hi);border:1px solid var(--line);
  border-radius:100px;padding:7px 14px;font-size:.72rem;color:var(--amber);
  margin-bottom:16px;
}
.eyebrow-chip.alt{color:var(--green);}

.ca-pill-row{margin:18px 0;display:flex;flex-wrap:wrap;gap:10px;}
.ca-pill{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--panel);border:2px solid var(--line);border-radius:100px;
  padding:8px 8px 8px 18px;font-family:monospace;font-size:.8rem;
  box-shadow:0 4px 0 rgba(0,0,0,.3);
}
.ca-pill-label{font-family:'Silkscreen';font-size:.6rem;color:var(--ink-dim);letter-spacing:.03em;flex-shrink:0;}
.ca-text{color:var(--green);}
.btn-copy{
  background:var(--green);color:#08150c;border:none;border-radius:100px;
  padding:7px 14px;font-family:'Sora';font-weight:700;font-size:.75rem;cursor:pointer;
  text-decoration:none;display:inline-block;white-space:nowrap;
}
.btn-copy:hover{background:#5dffa2;}

.hero-cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px;}

/* ============ HOMEPAD V2 transition notice (homepage hero) ============ */
.home-hero-content .lede + .lede{margin-top:-4px;}
.v2-notice{
  margin:22px 0 16px;padding:18px 20px;border-radius:20px;
  background:linear-gradient(90deg, rgba(57,255,136,.1), rgba(255,182,72,.08));
  border:1px dashed var(--green);
}
.v2-notice-title{margin-bottom:12px;}
.v2-notice-title .pixel{font-size:.62rem;color:var(--green);letter-spacing:.04em;}
.v2-notice-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:9px;font-size:.88rem;color:var(--ink-dim);line-height:1.55;}
.v2-notice-list strong{color:var(--ink);}
.v2-notice-tagline{margin-top:14px;font-family:'Silkscreen';font-size:.72rem;color:var(--amber);letter-spacing:.03em;}
.v2-notice-more{font-size:.85rem;color:var(--ink-dim);margin:0 0 4px;}
.btn-cute{
  border-radius:14px;padding:12px 20px;font-weight:700;
  border:2px solid var(--void);box-shadow:0 5px 0 rgba(0,0,0,.4);
  transition:transform .1s ease, box-shadow .1s ease;
  background:var(--panel-hi);
}
.btn-cute:hover{transform:translateY(-2px);box-shadow:0 7px 0 rgba(0,0,0,.4);}
.btn-cute:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(0,0,0,.4);}
.btn-cute.btn-primary{background:var(--green);color:#08150c;}

.stats-section{padding:36px 0 10px;}
.carousel-section{padding:24px 0 0;}
.carousel-viewport{overflow-x:scroll;scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch;touch-action:pan-y;user-select:none;min-height:300px;}
.carousel-viewport::-webkit-scrollbar{display:none;}
.carousel-viewport.dragging{cursor:grabbing;}
.carousel-track{display:flex;gap:16px;width:max-content;}
.carousel-track .launch-card{width:220px;flex-shrink:0;}
.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:24px;}
.profile-stat-grid{grid-template-columns:repeat(4,1fr);margin-bottom:0;}
.stat-card{
  background:var(--panel);border:2px solid var(--line);border-radius:16px;
  padding:16px 18px;box-shadow:0 4px 0 rgba(0,0,0,.28);
}
.stat-label{font-size:.72rem;color:var(--ink-dim);margin-bottom:6px;}
.stat-value{font-family:'Silkscreen';font-size:1.15rem;color:var(--ink);}
.stat-sub{font-size:.72rem;color:var(--ink-dim);margin-top:4px;}
.stat-sub.up{color:var(--green);}
.stat-sub.down{color:var(--red);}

.chart-card{
  background:var(--panel);border:2px solid var(--line);border-radius:18px;
  padding:18px;box-shadow:0 5px 0 rgba(0,0,0,.28);
}
.chart-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px;}
.chart-card-head h3{margin:0;}
.chart-link{font-size:.8rem;color:var(--green);}
.chart-embed{width:100%;height:420px;border-radius:12px;overflow:hidden;background:var(--void);}
.chart-mobile-hint{display:none;font-size:.78rem;color:var(--ink-dim);text-align:center;margin-top:8px;}
.chart-mobile-hint a{color:var(--green);}
/* Token detail page: the Dexscreener chart sits full-width above the
   trade/details grid, on every launch type, and gets more height than
   the homepage's $HOME embed since it's the page's main event. */
.token-dex-chart{margin-bottom:20px;}
.chart-embed-lg{height:520px;}
.chart-note{font-size:.78rem;color:var(--ink-dim);text-align:center;margin:10px 0 0;}
.chart-note a{color:var(--green);}
.rent-event-eq{color:var(--ink-dim);font-weight:400;font-size:.82em;margin-left:4px;}

.launchpad-section{padding:50px 0 0;}
.launchpad-heading{max-width:640px;margin-bottom:10px;}
.launchpad-heading h2{margin-top:6px;}
.wrap-inner{padding-top:10px;}

/* ============ Story + Plan sections ============ */

.story-section{padding:50px 0;border-bottom:1px solid var(--line);}
.story-inner{display:grid;grid-template-columns:.9fr 1.3fr;gap:36px;align-items:center;}
.story-art img{
  border:3px solid var(--void);border-radius:16px;
  box-shadow:0 6px 0 rgba(0,0,0,.35);transform:rotate(-2deg);
}

.plan-section{padding:50px 0;border-bottom:1px solid var(--line);}
.plan-lede{max-width:52ch;}
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0;}
.plan-card{
  background:var(--panel);border:2px solid var(--line);border-radius:16px;
  padding:20px;box-shadow:0 4px 0 rgba(0,0,0,.28);
}
.plan-num{font-family:'Silkscreen';font-size:1.3rem;color:var(--amber);margin-bottom:8px;}
.plan-card h3{margin-bottom:6px;}
.plan-card p{margin:0;font-size:.9rem;}

.plan-whiteboard{
  background:var(--panel-hi);border:1px dashed var(--line);border-radius:12px;
  padding:14px 18px;font-size:.88rem;color:var(--ink-dim);margin-bottom:22px;
}
.plan-whiteboard .pixel{color:var(--green);font-size:.78rem;margin-right:6px;}

.plan-links{display:flex;gap:12px;flex-wrap:wrap;}

/* ============ Create form v2, thumbnails, socials ============ */

.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.field .optional{font-size:.7rem;color:var(--ink-dim);font-weight:400;margin-left:4px;}
.image-preview{margin:-8px 0 16px;}
.image-preview img{max-height:120px;border-radius:10px;border:1px solid var(--line);}

.launch-thumb{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:10px;margin-bottom:10px;background:var(--panel-hi);}
.launch-thumb.placeholder{display:flex;align-items:center;justify-content:center;font-size:1.8rem;}

.token-detail-thumb{width:88px;height:88px;object-fit:cover;border-radius:14px;border:2px solid var(--line);flex-shrink:0;}
.token-desc{color:var(--ink);font-size:.9rem;}
.token-social-row{display:flex;gap:8px;margin:8px 0;}
.creator-row{display:flex;align-items:center;gap:10px;margin-top:16px;padding:10px 16px;background:var(--panel);border:1px solid var(--line);border-radius:10px;width:fit-content;}
.about-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;}
.about-card h3{margin:0 0 10px;}
.about-card p{color:var(--ink-dim);line-height:1.5;}
.grad-tag{font-family:'Silkscreen';font-size:.62rem;color:var(--amber);border:1px solid rgba(255,182,72,.4);border-radius:999px;padding:2px 8px;display:inline-block;margin-top:8px;}
.instant-tag{font-family:'Silkscreen';font-size:.55rem;color:var(--green);}
.hybrid-tag{font-family:'Silkscreen';font-size:.55rem;color:var(--amber);}
.paired-tag{font-family:'Silkscreen';font-size:.55rem;color:var(--purple);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.paired-tag-group{display:inline-flex;align-items:center;gap:5px;min-width:0;overflow:hidden;}
.paired-symbol{font-family:'Silkscreen';font-size:.55rem;color:var(--ink-dim);padding:1px 5px;border:1px solid rgba(180,140,255,.35);border-radius:5px;flex-shrink:0;white-space:nowrap;}
.curve-tag{font-family:'Silkscreen';font-size:.55rem;color:var(--blue);}
.card-mcap{display:flex;justify-content:space-between;align-items:baseline;margin:8px 0 4px;font-family:'Sora';}
.card-mcap-label{font-size:.68rem;color:var(--ink-dim);}
.card-mcap-value{font-family:'Silkscreen';font-size:.82rem;color:var(--ink);}

.trade-table-head{display:grid;grid-template-columns:.7fr 1fr 1fr 1.2fr .8fr;gap:8px;padding:0 4px 8px;font-size:.68rem;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--line);}
.trade-row{display:grid;grid-template-columns:.7fr 1fr 1fr 1.2fr .8fr;gap:8px;align-items:center;padding:9px 4px;font-size:.82rem;border-bottom:1px solid var(--line);}
.trade-row:last-child{border-bottom:none;}
.trade-kind{font-family:'Silkscreen';font-size:.68rem;padding:2px 8px;border-radius:6px;width:fit-content;}
.trade-kind.buy{color:var(--green);background:rgba(57,255,136,.12);}
.trade-kind.sell{color:var(--red);background:rgba(255,107,107,.12);}
.trade-addr{font-size:.78rem;}
.trade-amt, .trade-tokens{color:var(--ink);font-family:'Sora';}
.trade-tokens{color:var(--ink-dim);font-size:.76rem;}
.trade-time{color:var(--ink-dim);font-size:.72rem;text-decoration:none;}
.trade-time:hover{color:var(--green);}

.btn-mini{
  font-size:.75rem;background:var(--panel-hi);border:1px solid var(--line);
  border-radius:100px;padding:5px 12px;color:var(--ink-dim);
}
.btn-mini:hover{color:var(--green);border-color:var(--green);}

/* ============ Official-coin / buyback banner ============ */

.official-banner{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:linear-gradient(90deg, rgba(57,255,136,.1), rgba(255,182,72,.08));
  border:1px solid var(--line);border-radius:14px;
  padding:14px 18px;margin-bottom:26px;font-size:.85rem;color:var(--ink-dim);
}
.official-banner strong{color:var(--ink);}

/* ============ Nav-as-link, testing badge ============ */

.brand{
  display:flex;align-items:center;gap:8px;font-family:'Silkscreen';font-size:1rem;
  text-decoration:none;color:var(--ink);
}
.brand:hover{color:var(--green);}
.eyebrow-chip.testing{
  color:var(--amber);border-color:rgba(255,182,72,.4);margin-left:8px;
}

/* ============ Mobile optimization pass ============ */

/* ============ Anchor scroll offset (sticky header covers the top otherwise) ============ */

#top, #story, #plan, #app{
  scroll-margin-top:84px;
}

/* ============ Cuter nav + buttons pass ============ */

nav{gap:6px;flex-shrink:1;min-width:0;overflow-x:auto;scrollbar-width:none;}
nav::-webkit-scrollbar{display:none;}
.brand{flex-shrink:0;}
#wallet-slot{flex-shrink:0;}
nav a{
  padding:8px 14px;
  border-radius:100px;
  border:2px solid transparent;
  background:transparent;
  transition:all .15s ease;
  font-weight:600;
}
nav a:hover{
  background:var(--panel-hi);
  border-color:var(--green);
  color:var(--green);
  transform:translateY(-1px);
}
/* (nav a.active intentionally removed — see app.js route() comment) */

/* Rounder, bouncier, more colorful buttons across the whole site */
.btn, .btn-cute, .btn-primary, .btn-ghost{
  border-radius:100px !important;
  font-weight:700;
}
.btn-cute{
  border-width:2.5px;
}

/* Nav icons and button icons: sizing/positioning refined further down this file */
nav a{display:inline-flex;align-items:center;}
.btn-cute{display:inline-flex;align-items:center;}

.btn-primary, .btn-cute.btn-primary{
  background:var(--green) !important;color:#08150c !important;border-color:var(--void) !important;
}

/* Softer, rounder cards to match the friendlier button language */
.stat-card, .plan-card, .launch-card, .form-card, .trade-card, .chart-card, .rule,
.official-banner, .plan-whiteboard, .whiteboard{
  border-radius:20px !important;
}
.launch-thumb, .launch-thumb.placeholder{border-radius:16px !important;}

/* Trade tabs — pill style instead of flat rectangles */
.trade-tab{border-radius:100px;}

/* Copy button + connect wallet button get the same bounce */
.btn-copy, .wallet-pill{border-radius:100px;}

/* ============ Launch modal — wavy blob card, not a plain rectangle ============ */

.modal-overlay{
  position:fixed;inset:0;z-index:200;
  background:rgba(6,10,7,.72);
  display:flex;align-items:center;justify-content:center;
  padding:20px;
  animation:overlayFade .18s ease;
}
.modal-overlay.hidden{display:none;}
@keyframes overlayFade{from{opacity:0;}to{opacity:1;}}

.modal-blob{
  position:relative;
  width:100%;max-width:460px;
  background:var(--panel);
  border:3px solid var(--void);
  border-radius:38% 62% 63% 37% / 41% 44% 56% 59%;
  box-shadow:0 12px 0 rgba(0,0,0,.35);
  padding:44px 40px;
  transform:rotate(-0.6deg);
  animation:blobPop .22s cubic-bezier(.34,1.56,.64,1);
  max-height:88vh;
}
@keyframes blobPop{
  from{opacity:0;transform:rotate(-0.6deg) scale(.92);}
  to{opacity:1;transform:rotate(-0.6deg) scale(1);}
}
.modal-inner{
  background:var(--void);
  border-radius:20px;
  border:1px solid var(--line);
  padding:22px 20px;
  max-height:calc(88vh - 88px);
  overflow-y:auto;
}
.modal-close{
  position:absolute;top:-14px;right:-14px;
  width:36px;height:36px;border-radius:50%;
  background:var(--red);color:#2a0a0a;border:3px solid var(--void);
  font-family:'Silkscreen';font-size:.9rem;cursor:pointer;
  box-shadow:0 3px 0 rgba(0,0,0,.35);
  transition:transform .12s ease;
  z-index:2;
}
.modal-close:hover{transform:rotate(90deg) scale(1.08);}
.modal-close:active{transform:rotate(90deg) scale(.92);}

/* ============ Refined mascot avatars — true circles, face-biased crop ============ */

.nav-icon, .btn-icon{
  border-radius:50% !important;
  object-fit:cover;
  object-position:50% 22%; /* these portraits are top-heavy — bias the crop toward the face */
  border:2px solid var(--green);
  box-sizing:border-box;
  flex-shrink:0;
}
.nav-icon{width:24px;height:24px;margin-right:7px;}
.btn-icon{width:26px;height:26px;margin-right:8px;}

/* ============ Smoother button press — no more misaligned shadow-jump ============ */

.btn, .btn-cute{
  transition:transform .12s cubic-bezier(.34,1.56,.64,1), filter .12s ease;
  box-shadow:0 4px 0 rgba(0,0,0,.28) !important;
}
.btn:hover, .btn-cute:hover{
  transform:translateY(-2px);
  filter:brightness(1.08);
  box-shadow:0 6px 0 rgba(0,0,0,.28) !important;
}
.btn:active, .btn-cute:active{
  transform:translateY(1px) scale(.97);
  filter:brightness(.96);
  box-shadow:0 2px 0 rgba(0,0,0,.28) !important;
}

/* ============ Testing-in-progress banner (shown on the Launch form itself) ============ */

.testing-banner{
  background:linear-gradient(90deg, rgba(255,182,72,.22), rgba(255,182,72,.1));
  border:2px solid var(--amber);
  border-radius:16px;
  padding:14px 18px;
  margin-bottom:20px;
  font-size:.86rem;
  color:#ffe2b0;
}
.testing-banner strong{color:var(--amber);}

/* ============ Expanded Create form ============ */

/* Segmented control — equal-width segments. The base flex layout below is
   shared with #launch-type-tabs (3 plain segments); "Pair against"
   specifically overrides it into a 3-column grid further down
   (.pair-tabs-3col), since it has 4 tabs but only 3 real "slots" once
   $HOME and $HOMEPAD share the middle one. */
.pair-tabs{
  display:flex;
  background:var(--void);
  border:2px solid var(--line);
  border-radius:14px;
  padding:4px;
  gap:4px;
  margin-bottom:6px;
}
.pair-tab{
  position:relative;
  flex:1;
  display:flex;align-items:center;justify-content:center;gap:6px;
  padding:10px 6px;
  border-radius:10px;
  cursor:pointer;
  font-weight:700;font-size:.82rem;
  color:var(--ink-dim);
  transition:all .15s ease;
  text-align:center;
  white-space:nowrap;
}

/* "Pair against" specifically: 3 columns (ETH / quote pair / Stock), with
   $HOME and $HOMEPAD stacked as two rows sharing the middle column instead
   of both squeezed into a 4th column — ETH and Stock each span both rows. */
.pair-tabs-3col{
  display:grid;
  /* middle column holds the two longest labels ($HOME / $HOMEPAD), so it
     gets a little more width than ETH / Stock */
  grid-template-columns:1fr 1.35fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:5px;padding:5px;
}
.pair-tabs-3col .pt-eth{grid-column:1;grid-row:1 / span 2;}
.pair-tabs-3col .pt-home{grid-column:2;grid-row:1;}
.pair-tabs-3col .pt-homepad{grid-column:2;grid-row:2;}
.pair-tabs-3col .pt-stock{grid-column:3;grid-row:1 / span 2;}
/* In a plain row, transparent inactive segments read fine; in this
   irregular grid they don't — the stacked middle pair just looked like two
   floating labels next to a green box. Every cell is a visible button now
   (faint fill + hairline), active stays solid green, disabled goes dashed. */
.pair-tabs-3col .pair-tab{
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.08);
  min-width:0;
  padding:10px 8px;
  /* no overflow:hidden here — the "soon" ribbon sits outside the cell's
     box (top:-7px) and gets clipped by it. The wider middle column +
     smaller middle font already fit $HOMEPAD without an ellipsis. */
}
.pair-tabs-3col .pair-tab:hover{background:rgba(255,255,255,.07);border-color:rgba(57,255,136,.35);}
.pair-tabs-3col .pair-tab.active{background:var(--green);border-color:var(--green);}
.pair-tabs-3col .pair-tab-disabled{background:transparent;border-style:dashed;border-color:rgba(255,255,255,.1);}
.pair-tabs-3col .pair-tab-disabled:hover{background:transparent;border-color:rgba(255,255,255,.1);}
.pair-tabs-3col .pt-home,.pair-tabs-3col .pt-homepad{padding:8px 6px;}
.pair-tab:hover{color:var(--ink);}
.pair-tab.active{background:var(--green);color:#08150c;}

/* Deferred launch type: kept in the row so the layout stays a steady
   three-way split (and so it's obvious the mode exists and is coming),
   but muted and unclickable. The "soon" marker is a tiny corner ribbon
   positioned *outside* the flow — it costs zero horizontal room, so the
   three segments stay equal width instead of this one growing to fit an
   inline pill. Same muted tone as the footer's "soon" contract links. */
.pair-tab-disabled{cursor:not-allowed;color:#5a6a56;}
.pair-tab-disabled:hover{color:#5a6a56;}
.pair-tab-disabled.active{background:transparent;color:#5a6a56;}
.tab-soon{
  position:absolute;top:-7px;right:-3px;
  font-family:'Silkscreen';font-size:.42rem;letter-spacing:.04em;line-height:1.4;
  color:var(--amber);
  background:var(--void);
  border:1px solid rgba(255,182,72,.45);
  border-radius:100px;
  padding:1px 5px;
  pointer-events:none;
}

.quote-select{
  width:100%;background:var(--void);border:1px solid var(--line);border-radius:8px;
  color:var(--ink);padding:10px 12px;font-family:'Sora';font-size:.9rem;
}
.quote-select:disabled{opacity:.55;cursor:not-allowed;}
/* "Token" tab: paste-any-contract-address input + on-chain lookup result */
.quote-address{width:100%;font-family:monospace;font-size:.8rem;letter-spacing:.01em;}
.quote-picks{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;}
.quote-resolved{margin-top:8px;font-size:.8rem;min-height:1.2em;}
.quote-ok{color:var(--green);font-weight:700;}
.quote-bad{color:var(--red);}
.quote-warn{margin-top:8px;color:var(--amber);opacity:.9;}
.quote-warn code{font-size:.9em;}

.field-row.three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}

.logo-row{display:flex;gap:14px;align-items:flex-start;}
.logo-preview{
  width:64px;height:64px;border-radius:16px;flex-shrink:0;
  background:var(--panel-hi);border:2px solid var(--line);
  display:flex;align-items:center;justify-content:center;font-size:1.6rem;
  overflow:hidden;
}
.logo-preview img{width:100%;height:100%;object-fit:cover;}
.file-btn{
  display:inline-block;margin-top:8px;font-size:.82rem;color:var(--green);
  border:1px dashed var(--green);border-radius:100px;padding:6px 14px;cursor:pointer;
}
.file-btn:hover{background:rgba(57,255,136,.08);}

#devbuy-field .hint, #stock-openprice-field .hint{margin-top:6px;}

/* Launch-type tabs ("Bonding Curve" / "Instant Liquidity") reuse .pair-tab
   but with much longer labels than ETH/$HOME/Stock ever had — nowrap +
   flex:1 alone let the text overflow the pill on narrow screens. Allow
   wrapping at all sizes, and stack the two options vertically on mobile
   instead of squeezing them side by side. */
#launch-type-tabs .pair-tab{
  white-space:normal;
  font-size:.78rem;
  line-height:1.3;
  padding:10px 8px;
}

/* ============ Site footer ============
   Brand block (avatar + wordmark + one-paragraph pitch + social icons),
   icon-labelled link columns, a 3-step quick guide, the contract list
   as a collapsible strip, then a thin rule and a one-line sign-off.
   Calm and boxless on purpose — it's the landing after the loud pages. */
.site-footer{padding:52px 0 36px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.18));}
.ft-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:36px;padding-bottom:36px;}
.ft-brand-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.ft-avatar{width:44px;height:44px;border-radius:50%;border:2px solid var(--line);flex-shrink:0;}
.ft-wordmark{font-family:'Silkscreen';font-size:1rem;color:var(--ink);letter-spacing:.3px;}
.ft-by{font-family:'Sora';font-size:.72rem;font-weight:600;color:var(--green);background:rgba(57,255,136,.1);border:1px solid rgba(57,255,136,.25);border-radius:100px;padding:2px 9px;margin-left:8px;vertical-align:middle;}
.ft-desc{color:var(--ink-dim);font-size:.92rem;line-height:1.65;margin:0 0 18px;max-width:38ch;}
.ft-social{display:flex;gap:6px;}
.ft-social a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;color:var(--ink-dim);transition:all .15s ease;}
.ft-social a:hover{color:var(--green);background:var(--panel-hi);}
.ft-social svg{width:19px;height:19px;}
.ft-col h4{font-family:'Sora';font-size:.95rem;font-weight:700;color:var(--ink);margin:6px 0 16px;letter-spacing:.2px;}
.ft-link{display:flex;align-items:center;gap:10px;color:var(--ink-dim);font-size:.9rem;margin-bottom:12px;text-decoration:none;line-height:1.3;}
.ft-link:hover{color:var(--green);}
.ft-link:hover .ft-ico{color:var(--green);}
.ft-ico{display:inline-flex;width:18px;height:18px;flex-shrink:0;color:#7b8c76;transition:color .15s ease;}
.ft-ico svg{width:100%;height:100%;}
.ft-soon{color:#5a6a56;cursor:default;}
.ft-soon .ft-ico{color:#4a5a46;}
.soon-tag{display:inline-block;font-family:'Silkscreen';font-size:.55rem;color:var(--amber);border:1px solid rgba(255,182,72,.4);border-radius:100px;padding:1px 7px;margin-left:4px;vertical-align:middle;}
/* contracts strip */
.ft-contracts{border-top:1px solid var(--line);padding:16px 0 6px;}
.ft-contracts summary{list-style:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer;color:var(--ink);font-size:.9rem;font-weight:700;padding:6px 0;}
.ft-contracts summary::-webkit-details-marker{display:none;}
.ft-contracts summary::after{content:"";width:8px;height:8px;border-right:2px solid var(--ink-dim);border-bottom:2px solid var(--ink-dim);transform:rotate(45deg);margin-left:10px;transition:transform .15s ease;}
.ft-contracts[open] summary::after{transform:rotate(-135deg);}
.ft-contracts-title{display:inline-flex;align-items:center;gap:8px;}
.ft-contracts-count{font-weight:500;font-size:.78rem;color:var(--ink-dim);margin-left:auto;}
.ft-contracts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 24px;padding:12px 0 10px;}
.ft-contracts-grid .ft-link{margin-bottom:8px;font-size:.86rem;}
/* sign-off */
.ft-bottom{border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:space-between;align-items:flex-start;gap:24px;}
.ft-line{margin:0;font-size:.78rem;line-height:1.55;color:#7b8c76;max-width:78ch;}
.ft-copy{margin:0;font-size:.76rem;color:#5a6a56;white-space:nowrap;}

/* ============ Docs / Mechanism pages ============ */

.doc-main{padding:44px 0 60px;max-width:760px;}
.doc-section{margin:34px 0;}
.doc-section h2{color:var(--green);}
.doc-list{margin:12px 0;padding-left:22px;color:var(--ink-dim);}
.doc-list li{margin-bottom:8px;}
.doc-list.numbered{list-style:decimal;}
.doc-caveat{font-size:.86rem;color:var(--amber);border-left:2px solid var(--amber);padding-left:14px;margin-top:12px;}

.code-block{
  font-family:monospace;background:var(--panel);border:1px solid var(--line);
  border-radius:10px;padding:14px 16px;margin:14px 0;color:var(--green);font-size:.88rem;
}

.doc-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:40px;}

.contract-table{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:6px 18px;}
.contract-row{
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding:14px 0;border-bottom:1px solid var(--line);flex-wrap:wrap;
}
.contract-row:last-child{border-bottom:none;}
.contract-row span:first-child{color:var(--ink-dim);font-size:.86rem;}
.mono-link{
  font-family:monospace;font-size:.78rem;color:var(--green);
  max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

.faq-item{margin-bottom:22px;}
.faq-item h3{color:var(--ink);margin-bottom:6px;}
.faq-item p{margin:0;}

/* ============ Launch CTA — chunky 3D press-button. ============ */
/* No pseudo-element shadow layers, no clip-path, no z-index tricks — the   */
/* "3D" face is a plain border + box-shadow, which can never cover or clip  */
/* the label the way the last two attempts did. This is the safe version.  */

.btn-launch-cta{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Silkscreen';font-size:.95rem;color:#08150c;
  background:var(--green);
  padding:16px 30px;
  border:3px solid var(--void);
  border-radius:18px;
  cursor:pointer;
  text-decoration:none;
  /* the "3D" bottom face */
  box-shadow:0 7px 0 var(--void);
  transform:translateY(0);
  transition:transform .1s ease, box-shadow .1s ease, background .15s ease;
}
.btn-launch-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:50%;
  background:var(--void);font-size:1rem;flex-shrink:0;
}
.btn-launch-label{white-space:nowrap;letter-spacing:.3px;}

.btn-launch-cta:hover{
  background:#5dffa2;
  transform:translateY(-2px);
  box-shadow:0 9px 0 var(--void);
}
.btn-launch-cta:active{
  transform:translateY(7px);
  box-shadow:0 0 0 var(--void);
}

/* ============ Fee slider + live preview ============ */

.fee-slider{
  width:100%;height:8px;-webkit-appearance:none;appearance:none;
  background:var(--panel-hi);border-radius:100px;outline:none;
  margin:8px 0 4px;
}
.fee-slider::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;
  width:22px;height:22px;border-radius:50%;
  background:var(--green);border:3px solid var(--void);cursor:pointer;
}
.fee-slider::-moz-range-thumb{
  width:22px;height:22px;border-radius:50%;
  background:var(--green);border:3px solid var(--void);cursor:pointer;
}

.fee-preview{
  background:var(--panel-hi);border:1px solid var(--line);border-radius:12px;
  padding:14px 16px;margin-top:12px;font-family:'Sora';font-size:.84rem;
}
.fee-preview-total{font-family:'Silkscreen';font-size:1rem;color:var(--green);margin-bottom:10px;}
.fee-preview-row{display:flex;justify-content:space-between;padding:3px 0;color:var(--ink-dim);}
.fee-preview-row.sub{padding-left:12px;font-size:.78rem;opacity:.85;}
.fee-preview-row.highlight{
  margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);
  color:var(--ink);font-weight:700;
}
.fee-preview-row.highlight span:last-child{color:var(--green);}

/* ============ Flywheel page ============ */

.flywheel-main{padding:44px 0 70px;max-width:900px;}

.fw-hero{position:relative;padding:10px 0 20px;text-align:center;}
.fw-hero-stickers{position:absolute;inset:0;pointer-events:none;}
.fw-hero .sticker{position:absolute;width:70px;height:70px;border-radius:14px;}
.fw-s1{top:-10px;left:0;transform:rotate(-8deg);}
.fw-s2{top:-6px;right:0;transform:rotate(7deg);}
.fw-hero h1{font-size:clamp(2.2rem,6vw,3.2rem);color:var(--green);}
.fw-hero .lede{max-width:56ch;margin:0 auto;}

.fw-narrative{text-align:center;max-width:640px;margin:0 auto 10px;}
.fw-tagline{
  font-family:'Silkscreen';font-size:1rem;color:var(--amber);
  margin-top:18px;line-height:1.7;
}

.fw-loop-section{padding:50px 0 30px;text-align:center;border-top:1px solid var(--line);margin-top:20px;}

/* ============ Proof of Rent page ============
   A dashboard, so it gets a wider column than the prose pages and its own
   grids — deliberately NOT .stat-grid, which turns into a horizontal
   scroll-row on phones (fine for a homepage stat strip, wrong for a
   dashboard where every number should be visible at once). */
.rent-main{max-width:1000px;}
.rent-hero{padding-bottom:6px;}
.rent-hero .lede strong{color:var(--green);font-weight:600;}

/* headline number */
.rent-hero-stat{
  position:relative;text-align:center;
  background:linear-gradient(180deg,var(--panel-hi),var(--panel));
  border:1px solid var(--line);border-radius:18px;
  padding:26px 20px 22px;margin:22px 0 18px;
  box-shadow:0 8px 0 rgba(0,0,0,.28);overflow:hidden;
}
.rent-hero-stat::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 50% 0%,rgba(57,255,136,.10),transparent 70%);pointer-events:none;}
.rent-hero-label{font-size:.74rem;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px;}
.rent-hero-value{font-family:'Silkscreen';font-size:clamp(2rem,6vw,3.2rem);color:var(--green);line-height:1.1;}
.rent-hero-value .sk{display:inline-block;height:1em;vertical-align:middle;}
.rent-hero-unit{font-size:.4em;color:var(--ink);vertical-align:middle;margin-left:4px;}
.rent-hero-subs{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;font-size:.86rem;color:var(--ink-dim);}
.rent-hero-subs b{color:var(--ink);font-weight:600;}
.rent-hero-sep{color:var(--line);}
.rent-hero-note{margin-top:12px;font-size:.74rem;color:var(--ink-dim);max-width:52ch;margin-left:auto;margin-right:auto;}

/* live stat grids */
.rent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px;}
.rent-grid.four{grid-template-columns:repeat(4,1fr);}
.rent-grid .stat-card{padding:16px 18px;}
.rent-grid .stat-value{font-size:1.25rem;}
.rent-paired-note{margin:-2px 0 18px;font-size:.78rem;color:var(--ink-dim);line-height:1.5;}
.stat-card.not-automated{opacity:.55;border-style:dashed;}
.stat-card.not-automated .stat-value{color:var(--ink-dim);}

/* sections */
.rent-home-leg,.rent-events-section{margin-top:34px;padding-top:26px;border-top:1px solid var(--line);}

/* ---- Proof of Rent: burn (left) + platform volume (right) ---- */
.rent-cols{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;align-items:start;margin:6px 0 24px;}
.rent-col-volume{position:sticky;top:16px;}
.burn-hero-card,.volume-hero-card{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:24px 20px;text-align:center;}
.burn-hero-card::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 50% 0%,rgba(255,120,60,.12),transparent 70%);pointer-events:none;}
.volume-hero-card::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 50% 0%,rgba(57,255,136,.12),transparent 70%);pointer-events:none;}
.burn-hero-card > *,.volume-hero-card > *{position:relative;}
.burn-share{margin-top:8px;font-size:.88rem;color:var(--ink-dim);line-height:1.5;}
.burn-share b{color:var(--ink);font-weight:600;}
.rent-hero-subs.left{justify-content:flex-start;margin-top:10px;}
.burn-hero-links{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:16px;}
.burn-card .burn-hero-links{justify-content:flex-start;}
.burn-more{display:grid;grid-template-columns:1fr;gap:12px;margin:14px 0;}
.burn-card-share{font-size:.42em;color:var(--ink-dim);font-weight:400;margin-left:6px;vertical-align:middle;}
.burn-status-pill{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;padding:5px 12px;border-radius:100px;border:1px solid;line-height:1.4;}
.burn-status-pill.done{color:var(--green);border-color:rgba(57,255,136,.35);background:rgba(57,255,136,.08);}
.burn-status-pill.pending{color:var(--amber);border-color:rgba(255,182,72,.35);background:rgba(255,182,72,.08);}
.burn-status-pill b{font-weight:700;}
.btn-mini-primary{color:var(--green);border-color:rgba(57,255,136,.4);}

/* roadmap strip */
.burn-roadmap{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:30px 0 4px;}
.burn-step{position:relative;display:flex;flex-direction:column;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 16px 14px;transition:border-color .15s ease;}
.burn-step-dot{position:absolute;top:-12px;left:16px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-family:'Silkscreen';font-size:.66rem;background:var(--void);border:1px solid var(--line);color:var(--ink-dim);}
.burn-step-k{font-size:.62rem;color:var(--ink-dim);letter-spacing:.06em;text-transform:uppercase;margin-top:2px;}
.burn-step-v{font-size:.84rem;color:var(--ink-dim);line-height:1.5;}
/* "now" is where things actually stand today — the only step with real
   visual weight; "next" stays neutral (planned, not started) and "goal"
   reads as a distinct destination rather than a copy of "next" a shade
   greener, which is what a plain 1st/2nd/3rd color ramp looked like. */
.burn-step.is-current{border-color:rgba(255,154,92,.5);background:linear-gradient(180deg,rgba(255,154,92,.07),transparent 65%),var(--panel);}
.burn-step.is-current .burn-step-dot{border-color:#ff9a5c;color:#ff9a5c;background:#1c130d;}
.burn-step.is-current .burn-step-k{color:#ff9a5c;}
.burn-step.is-goal{border-style:dashed;}
.burn-step.is-goal .burn-step-dot{border-color:var(--green);color:var(--green);}
.burn-step.is-goal .burn-step-k{color:var(--green);}

/* how it works */
.burn-how{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.burn-how-item{display:flex;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;}
.burn-how-n{flex:0 0 auto;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:rgba(57,255,136,.12);color:var(--green);font-size:.7rem;}
.burn-how-item strong{display:block;font-size:.9rem;margin-bottom:4px;}
.burn-how-item p{margin:0;font-size:.82rem;color:var(--ink-dim);line-height:1.5;}
.rent-foot{display:flex;justify-content:center;margin:26px 0 8px;}
.rent-section-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px;}
.rent-section-head h3{margin:0;font-size:1.05rem;}
.rent-section-head .eyebrow-chip{margin:0;padding:5px 11px;font-size:.66rem;}
.rent-section-count{font-size:.74rem;color:var(--ink-dim);}
.rent-section-note{margin:0 0 16px;font-size:.84rem;color:var(--ink-dim);line-height:1.55;max-width:70ch;}
.rent-section-note a{color:var(--green);}

/* events: one card per event, so mobile and desktop share the same structure */
.rent-events{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.rent-event{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:border-color .15s ease;}
.rent-event:hover{border-color:rgba(57,255,136,.4);}
.rent-event-top{display:flex;align-items:center;gap:8px;min-width:0;}
.rent-event-token{font-family:'Silkscreen';font-size:.8rem;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rent-event-token a{color:inherit;text-decoration:none;}
.rent-event-token a:hover{color:var(--green);}
.rent-event-time{margin-left:auto;font-size:.72rem;color:var(--ink-dim);white-space:nowrap;}
.rent-event-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.rent-event-amt{font-size:.86rem;color:var(--ink-dim);}
.rent-event-amt b{color:var(--green);font-weight:600;}
.rent-footnote{margin:30px 0 0;text-align:center;}

/* ============ "Mainnet coming soon" popup (reuses .modal-overlay/.modal-blob/.modal-inner shell) ============ */
.soon-blob{max-width:480px;border-radius:26px;transform:rotate(0deg);}
.soon-inner{text-align:center;}
.soon-sticker{width:84px;height:84px;object-fit:cover;border-radius:16px;border:3px solid var(--void);box-shadow:0 6px 0 rgba(0,0,0,.35);margin:0 auto 14px;display:block;transform:rotate(-4deg);}
.soon-title{font-size:1.35rem;color:var(--green);margin:4px 0 12px;line-height:1.3;}
.soon-body{font-size:.88rem;color:var(--ink-dim);line-height:1.6;margin:0 0 10px;}
.soon-body a{color:var(--green);}
.soon-body-sub{font-size:.8rem;}
.soon-cta-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:18px 0 14px;}
.soon-dismiss{background:none;border:none;color:var(--ink-dim);font-family:'Sora';font-size:.78rem;text-decoration:underline;cursor:pointer;padding:6px;}
.soon-dismiss:hover{color:var(--green);}

/* ============ Guide pages (guide-launch / guide-trade / guide-rent) ============
   Same visual language as flywheel.html — .fw-hero, .doc-section, .fw-tagline,
   .doc-cta are all reused as-is. Only new pieces: the 3-step mini-nav
   connecting the pages, and the "next step" link at the end of each. */
.guide-steps{display:flex;justify-content:center;gap:8px;margin:0 0 28px;flex-wrap:wrap;}
.guide-step-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 16px;border-radius:100px;border:1px solid var(--line);background:var(--panel);font-family:'Sora';font-size:.8rem;font-weight:600;color:var(--ink-dim);text-decoration:none;transition:all .15s ease;}
.guide-step-pill:hover{border-color:var(--green);color:var(--green);}
.guide-step-pill.current{background:var(--green);border-color:var(--green);color:#04140a;}
.guide-step-num{font-family:'Silkscreen';font-size:.68rem;width:18px;height:18px;border-radius:50%;background:rgba(0,0,0,.15);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}
.guide-step-pill:not(.current) .guide-step-num{background:var(--panel-hi);}
.guide-next{display:block;text-align:center;margin:44px 0 8px;padding:20px;border-top:1px solid var(--line);}
.guide-next-label{font-size:.72rem;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;}
.guide-next a{font-family:'Silkscreen';font-size:1rem;color:var(--green);}
.guide-next a:hover{color:#5dffa2;}
.guide-list{max-width:560px;margin:20px auto 0;text-align:left;display:flex;flex-direction:column;gap:14px;}
.guide-list-item{display:flex;gap:14px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 18px;}
.guide-list-item .glyph{font-family:'Silkscreen';font-size:.85rem;color:var(--green);flex-shrink:0;width:26px;height:26px;border-radius:8px;background:var(--panel-hi);display:flex;align-items:center;justify-content:center;}
.guide-list-item div p{margin:2px 0 0;color:var(--ink-dim);font-size:.86rem;line-height:1.5;}
.guide-list-item div strong{color:var(--ink);font-size:.92rem;}
.fw-loop-section h2{color:var(--green);}
.fw-loop-intro, .fw-loop-outro{max-width:56ch;margin:0 auto;color:var(--ink-dim);}
.fw-loop-outro{margin-top:30px;}

.fw-wheel-wrap{display:flex;justify-content:center;padding:30px 0;overflow-x:auto;}
.fw-wheel{
  position:relative;
  width:600px;height:600px;
  flex-shrink:0;
}
.fw-ring{position:absolute;inset:0;width:100%;height:100%;}
.fw-ring-track{
  fill:none;stroke:var(--line);stroke-width:2;
}
.fw-ring-flow{
  fill:none;stroke:var(--green);stroke-width:3;
  stroke-linecap:round;
  stroke-dasharray:14 22;
  animation:fwFlow 12s linear infinite;
  opacity:.85;
}
@keyframes fwFlow{
  from{stroke-dashoffset:0;}
  to{stroke-dashoffset:-1446;} /* 2*pi*230, one full lap */
}

.fw-center{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  display:flex;flex-direction:column;align-items:center;gap:6px;
  z-index:2;
}
.fw-center img{width:56px;height:56px;border-radius:16px;border:2px solid var(--green);}
.fw-center-label{font-family:'Silkscreen';font-size:.85rem;color:var(--green);}

.fw-node{
  position:absolute;top:50%;left:50%;
  width:130px;
  transform: translate(-50%,-50%) rotate(calc(360deg / 8 * var(--i))) translateY(-230px) rotate(calc(-360deg / 8 * var(--i)));
  text-align:center;
  font-family:'Sora';font-weight:700;font-size:.8rem;
  background:var(--panel);border:2px solid var(--line);border-radius:100px;
  padding:10px 14px;
  animation:fwPulse 3.2s ease-in-out infinite;
  animation-delay:calc(var(--i) * 0.35s);
}
@keyframes fwPulse{
  0%, 100%{border-color:var(--line);}
  50%{border-color:var(--green);}
}

.fw-split-section{padding:40px 0 10px;border-top:1px solid var(--line);}
.fw-split-section h2{color:var(--green);text-align:center;margin-bottom:26px;}
.fw-split-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.fw-split-card{
  background:var(--panel);border:2px solid var(--line);border-radius:18px;
  padding:22px 18px;text-align:center;
}
.fw-split-ring{
  width:84px;height:84px;margin:0 auto 14px;border-radius:50%;
  background:conic-gradient(var(--green) calc(var(--pct)*1%), var(--panel-hi) 0);
  display:flex;align-items:center;justify-content:center;
  position:relative;
}
.fw-split-ring::before{
  content:"";position:absolute;inset:8px;background:var(--panel);border-radius:50%;
}
.fw-split-ring span{position:relative;font-family:'Silkscreen';font-size:1rem;color:var(--green);}
.fw-split-card h3{margin-bottom:8px;}
.fw-split-card p{font-size:.85rem;margin:0;}

.fw-teaser{
  background:var(--panel-hi);border:1px dashed var(--green);border-radius:12px;
  padding:14px 18px;margin-bottom:22px;font-size:.88rem;color:var(--ink-dim);
}
.fw-teaser .pixel{color:var(--green);margin-right:6px;}
.fw-teaser a{color:var(--amber);font-weight:700;}


/* =====================================================================
   RESPONSIVE — every media query lives here, and only here.
   Ordered widest → narrowest so each step only tightens the last.
   If you need a mobile override, add it to the matching block below
   rather than next to the desktop rule — scattered media blocks were
   silently overriding each other before this consolidation.
   ===================================================================== */

/* ---- ≤900px : tablets ---- */
@media (max-width:900px){
  /* Two-row header from here down (tablets AND phones):
       row 1: [brand]                       [network badge + wallet]
       row 2: [Home  Story  Plan  Explore  Launch →]
     Between 641-900px the single desktop row was cramming brand + five
     nav items + wallet into ~740px with flex-wrap:nowrap, so an iPad in
     portrait got a squashed/overflowing header. */
  .headbar{padding:8px 16px 6px;gap:6px 8px;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center;}
  .brand{order:1;}
  .brand .tag{display:none;}
  #wallet-slot{order:2;width:auto;flex:0 0 auto;display:flex;justify-content:flex-end;}
  nav{
    order:3;display:flex;gap:4px;padding-bottom:0;
    flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
    justify-content:flex-start;flex-shrink:0;
    /* full-bleed through the headbar's 16px side padding so pills can
       scroll off the real screen edge; inner padding keeps the first pill
       aligned with the brand above (box-sizing is border-box) */
    width:calc(100% + 32px);margin:0 -16px;padding-left:16px;padding-right:16px;
  }
  nav::-webkit-scrollbar{display:none;}
  nav a{white-space:nowrap;flex-shrink:0;}
  /* centre the three items when they fit; auto margins collapse to 0 on
     overflow so the row still scrolls from its left edge (a plain
     justify-content:center would push the first item off-screen) */
  nav > a:first-child{margin-left:auto;}
  nav > a:last-child{margin-right:auto;}
  #top, #story, #plan, #app{scroll-margin-top:96px;}

  .stat-grid{grid-template-columns:repeat(3,1fr);}
  .profile-stat-grid{grid-template-columns:repeat(2,1fr);}
  .ft-top{grid-template-columns:1fr 1fr;gap:28px;}
  .token-stat-grid{grid-template-columns:repeat(2,1fr);}
  .ft-brand{grid-column:1 / -1;}
  .ft-contracts-grid{grid-template-columns:repeat(2,1fr);}
  .sticker{display:none !important;}
  .story-inner{grid-template-columns:1fr;}
  .plan-grid{grid-template-columns:1fr;}
}

/* ---- ≤760px : large phones / small tablets ---- */
@media (max-width:760px){
  .token-layout{grid-template-columns:1fr;grid-template-areas:"chart" "trade" "rest";}
  .token-trade{position:static;}
  .token-stat-grid{grid-template-columns:repeat(2,1fr);}
  .fw-split-grid{grid-template-columns:1fr 1fr;}
  .rent-grid.four{grid-template-columns:repeat(2,1fr);}
  .rent-cols{grid-template-columns:1fr;gap:22px;}
  .rent-col-volume{position:static;}
  .burn-hero-card,.volume-hero-card{padding:20px 16px;border-radius:16px;}
  .burn-more,.burn-roadmap,.burn-how{grid-template-columns:1fr;}
  .burn-hero-links .btn-mini{flex:1 1 auto;justify-content:center;}
  .rent-hero-subs{font-size:.8rem;}
}

/* ---- ≤680px : flywheel diagram scales down ---- */
@media (max-width:680px){
  .fw-wheel{width:340px;height:340px;transform:scale(1);}
  .fw-node{
    width:92px;font-size:.66rem;padding:7px 8px;
    transform: translate(-50%,-50%) rotate(calc(360deg / 8 * var(--i))) translateY(-140px) rotate(calc(-360deg / 8 * var(--i)));
  }
  .fw-center img{width:42px;height:42px;}
}

/* ---- ≤640px : phones (the main mobile block) ---- */
@media (max-width:640px){
  /* Header / nav — the two-row structure comes from the ≤900px block;
     this is just the phone-sized version of it. */
  .brand{font-size:.9rem;}
  nav{gap:2px;font-size:.8rem;}
  /* three equal columns — reads like a tab bar and uses the whole width
     instead of huddling at the left. flex-basis 0 + default min-width
     (min-content) means labels never shrink below their text; if a huge
     system font makes them overflow, the row simply scrolls as before. */
  nav a{flex:1 1 0;justify-content:center;padding:6px 6px;font-size:.78rem;}
  nav > a:first-child{margin-left:0;}
  nav > a:last-child{margin-right:0;}
  .nav-icon{width:18px;height:18px;border-width:1.5px;margin-right:5px;vertical-align:-3px;}
  .btn-icon{width:21px;height:21px;border-width:1.5px;margin-right:6px;vertical-align:-4px;}
  /* network badge collapses to just its status dot on phones
     (green = correct network / mainnet, red = wrong network) — the word
     "MAINNET" didn't earn the space; the readable status lives in the
     wallet dropdown */
  .wallet-info{gap:6px;}
  .network-badge{font-size:0;letter-spacing:0;padding:0;width:14px;height:14px;justify-content:center;gap:0;}
  .wallet-pill{font-size:.72rem;padding:6px 10px;}
  #connect-btn{padding:7px 12px;font-size:.78rem;}
  #top, #story, #plan, #app{scroll-margin-top:92px;}

  /* Horizontal lists — ONE scrolling row, same recipe as the nav.
     Anything that used to wrap onto 2-3 rows on a phone (filter chips,
     the 5 home stats, the 4 profile stats, profile tabs, token-detail
     stats, launch-type tabs) now scrolls sideways instead. The row
     bleeds through the 16px page gutter so items slide off the real
     screen edge, and a soft fade on the right hints that there's more. */
  .explore-filter-chips, .profile-tabs, .stat-grid, .stat-row{
    display:flex;flex-wrap:nowrap;align-items:stretch;gap:8px;
    overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
    scroll-snap-type:x proximity;scroll-padding-left:16px;
    width:calc(100% + 32px);margin-left:-16px;margin-right:-16px;
    padding-left:16px;padding-right:16px;
    -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);
    mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);
  }
  .explore-filter-chips::-webkit-scrollbar, .profile-tabs::-webkit-scrollbar,
  .stat-grid::-webkit-scrollbar, .stat-row::-webkit-scrollbar{display:none;}
  .explore-filter-chips > *, .profile-tabs > *, .stat-grid > *, .stat-row > *{
    flex:0 0 auto;scroll-snap-align:start;
  }
  /* stat cards get a fixed width so ~2 fit with the third peeking in,
     which is the visual cue that the row scrolls */
  .stat-grid > .stat-card, .stat-row > .stat{flex:0 0 148px;}
  .stat-grid{margin-bottom:16px;}
  .stat-row{margin:14px -16px;}
  .stat-card{padding:10px 12px;}
  .stat-value{font-size:.95rem;}
  .stat-label{font-size:.64rem;margin-bottom:4px;}
  .stat-sub{font-size:.64rem;margin-top:3px;}
  /* the box-shadow "lift" under stat cards needs room inside the scroll
     container or it gets clipped at the bottom */
  .stat-grid, .stat-row{padding-bottom:6px;}

  /* Launch-type tabs (Hybrid / Bonding Curve / Instant Liquidity): three
     equal segments; the two longer labels wrap to a second line rather
     than the row scrolling (a scrolling segmented box just looked cut
     off) or stacking as three full rows. Robust to large system fonts. */
  #launch-type-tabs{flex-wrap:nowrap;overflow:visible;}
  #launch-type-tabs .pair-tab{flex:1 1 0;min-width:0;padding:8px 4px;font-size:.72rem;line-height:1.15;white-space:normal;text-align:center;}

  /* Home carousel: same edge-to-edge bleed so its cards slide off the
     real screen edge like every other row, instead of clipping 16px in. */
  .carousel-viewport{width:calc(100% + 32px);margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;}

  /* Buttons */
  .btn{padding:9px 14px;font-size:.85rem;}
  .btn-launch-cta{padding:11px 18px;font-size:.78rem;gap:8px;border-width:2px;border-radius:14px;box-shadow:0 5px 0 var(--void);}
  .btn-launch-icon{width:20px;height:20px;font-size:.8rem;}

  /* Page gutter: 24px each side is desktop breathing room; on a 360px
     phone it costs 13% of the width. */
  .wrap{padding:0 16px;}

  /* Hero — compacted for phones. Tighter vertical padding, smaller pixel
     heading, tighter lede, and the three CTAs on ONE row (they used to
     stack as three full-width buttons, ~150px on their own). */
  .home-hero{padding:18px 0 16px;}
  .home-hero-content{max-width:100%;}
  .eyebrow-chip{padding:4px 10px;font-size:.58rem;gap:4px;margin-bottom:10px;}
  h1{font-size:1.25rem;margin-bottom:.35em;}
  h2{font-size:1.2rem;}
  .lede{font-size:.84rem;line-height:1.45;}
  .home-hero .lede{margin:0 0 4px;}
  .ca-pill-row{margin:10px 0;flex-direction:column;align-items:flex-start;}
  .ca-pill{padding:4px 4px 4px 12px;font-size:.66rem;max-width:100%;gap:6px;flex-wrap:wrap;row-gap:4px;}
  .ca-pill-label{font-size:.56rem;}
  .ca-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:110px;display:inline-block;vertical-align:middle;}
  .btn-copy{padding:5px 9px;font-size:.66rem;}
  /* Each CTA sizes to its own label (flex-basis:auto) and only the
     LEFTOVER space is shared — equal thirds clipped "Buy $HOME" on
     phones, especially with a larger system font size. wrap is a
     safety net: if the system font is huge, X drops to a second line
     instead of anything getting cut off. */
  .hero-cta-row{flex-direction:row;flex-wrap:wrap;gap:6px;margin-top:12px;}
  .hero-cta-row .btn{flex:1 1 auto;padding:8px 10px;font-size:.74rem;justify-content:center;text-align:center;white-space:nowrap;overflow:visible;}
  .hero-cta-row .btn-icon{width:16px;height:16px;margin-right:5px;flex-shrink:0;}

  /* Stats / chart */
  .chart-embed{height:240px;}
  .chart-embed-lg{height:380px;}
  .chart-card-head{flex-direction:column;align-items:flex-start;}
  .chart-mobile-hint{display:block;}

  /* Story / Plan */
  .story-inner{gap:14px;}
  .story-art img{max-width:170px;margin:0 auto;}
  .plan-grid{gap:10px;}
  .plan-links{flex-direction:column;}
  .plan-links .btn{text-align:center;justify-content:center;}

  /* Explore */
  .explore-toolbar{flex-direction:column;align-items:stretch;}
  .explore-toolbar .quote-select{width:100%;}
  /* flex-basis follows the main axis — in column mode that's height, not
     width, so the 220px meant as a min-width would become a min-height
     here unless it's reset. */
  .explore-search-input{flex:none;width:100%;}
  .explore-filter-chips{flex:none;}
  /* Cards — compact 2-column grid on phones (all the way down to 360px;
     the old <=400px fallback to one column made most Galaxy/iPhone
     widths single-column, which is what made Explore feel so tall).
     Inner card width at 360px is ~140px, so everything below is sized
     to fit that: smaller pixel text, tighter gaps, shorter type tags. */
  .grid-launches{grid-template-columns:repeat(2,1fr);gap:8px;}
  .launch-card{padding:10px;border-radius:14px !important;}
  .launch-thumb, .launch-thumb.placeholder{border-radius:10px !important;margin-bottom:8px;}
  .launch-thumb.placeholder{font-size:1.4rem;}
  .sk-thumb{border-radius:10px;margin-bottom:8px;}
  .sk-line{height:10px;margin:6px 0;}
  .launch-card .sym{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .launch-card .name{font-size:.74rem;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .card-mcap{margin:6px 0 2px;}
  .card-mcap-label{font-size:.6rem;}
  .card-mcap-value{font-size:.72rem;}
  .launch-card .bar{height:5px;margin:6px 0 4px;}
  .launch-card .meta{font-size:.62rem;}
  .card-age{font-size:.6rem;}
  /* type tags shortened so tag + age always fit on one line at 140px —
     "instant liquidity" alone was wider than the card */
  .launch-card .instant-tag, .launch-card .curve-tag{font-size:0;}
  .launch-card .instant-tag::after{content:"instant";font-size:.52rem;}
  .launch-card .curve-tag::after{content:"curve";font-size:.52rem;}
  .launch-card .paired-tag{font-size:.5rem;max-width:8ch;}
  .launch-card .paired-symbol{font-size:.48rem;padding:0 4px;max-width:9ch;overflow:hidden;text-overflow:ellipsis;}
  .launch-card .paired-tag-group{min-width:0;overflow:hidden;flex-shrink:1;}
  .launch-card .hybrid-tag{font-size:.52rem;}
  .launch-card .grad-tag{font-size:.52rem;padding:1px 6px;margin-top:5px;}
  .card-badges{top:7px;right:7px;gap:4px;}
  .card-badge{font-size:.5rem;padding:2px 5px;}
  .card-socials{gap:10px;margin-top:6px;}
  .card-socials svg{width:15px;height:15px;}
  /* carousel cards match the grid cards' size so the two rows of the
     homepage read as one system */
  .carousel-track{gap:10px;}
  .carousel-track .launch-card{width:160px;}
  .carousel-viewport{min-height:250px;}

  /* Launch form */
  .official-banner{font-size:.74rem;line-height:1.4;padding:10px 12px;margin-bottom:14px;gap:6px;border-radius:12px !important;}
  .launchpad-heading{margin-bottom:10px;}
  .field-row{grid-template-columns:1fr;gap:0;}
  .field-row.three{grid-template-columns:1fr;gap:0;}
  .form-card{padding:14px;border-radius:14px !important;}
  .field{margin-bottom:12px;}
  .field label{font-size:.76rem;margin-bottom:4px;}
  .pair-tab{padding:9px 6px;font-size:.78rem;}
  .logo-row{flex-direction:column;align-items:center;text-align:center;}
  .pair-tabs{justify-content:center;}
  /* "Pair against" is a 3-column grid (ETH / $HOME+$HOMEPAD stacked /
     Stock) — each cell has as much width as a normal 3-tab row, so it
     just needs slightly tighter padding for the shorter row height, not
     the aggressive font shrink a cramped 4-in-a-row would have needed. */
  #pair-tabs.pair-tabs{gap:4px;padding:4px;}
  #pair-tabs .pair-tab{padding:8px 4px;font-size:.76rem;min-width:0;}
  /* the two stacked middle cells carry the longest labels — a notch
     smaller so "$HOMEPAD" fits its cell instead of spilling into ETH's */
  #pair-tabs .pt-home,#pair-tabs .pt-homepad{padding:7px 4px;font-size:.7rem;letter-spacing:-.01em;}

  /* Token detail / trades */
  /* token header: small thumb beside the title, share/launched row below */
  .token-head{flex-wrap:wrap;align-items:center;gap:12px;padding:12px;margin-bottom:12px;border-radius:14px !important;}
  .token-head-main{flex:1 1 0;min-width:0;}
  .token-head-side{flex:1 1 100%;flex-direction:row;align-items:center;justify-content:space-between;}
  .token-head-side .btn{padding:7px 12px;font-size:.76rem;}
  .token-head h1{font-size:1.25rem;}
  .token-name{font-size:.82rem;margin-bottom:6px;}
  .token-detail-thumb{width:64px;height:64px;border-radius:12px;}
  .token-status{padding:10px 12px;}
  .token-status-row{font-size:.78rem;}
  .details-card{padding:14px;border-radius:14px !important;}
  .details-grid{grid-template-columns:1fr;gap:2px 0;font-size:.8rem;}
  .details-grid .dt{margin-top:8px;font-size:.68rem;text-transform:uppercase;letter-spacing:.3px;}
  .token-rest{gap:12px;}
  .trade-card{padding:12px;border-radius:14px !important;}
  .trade-table-head span:nth-child(4), .trade-row .trade-tokens{display:none;}
  .trade-table-head{grid-template-columns:.7fr 1fr 1fr .8fr;}
  .trade-row{grid-template-columns:.7fr 1fr 1fr .8fr;}
  .mono-link{max-width:140px;}

  /* Proof of Rent page */
  .rent-hero-stat{padding:20px 14px 18px;margin:14px 0 14px;border-radius:16px;}
  .rent-hero-subs{gap:6px;font-size:.8rem;}
  .rent-hero-sep{display:none;}
  .rent-hero-subs > span{flex:1 1 100%;text-align:center;}
  .rent-grid,.rent-grid.four{grid-template-columns:repeat(2,1fr);gap:10px;}
  .rent-grid .stat-card{padding:12px 13px;}
  .rent-grid .stat-value{font-size:1rem;}
  .rent-home-leg,.rent-events-section{margin-top:24px;padding-top:18px;}
  .rent-events{grid-template-columns:1fr;gap:10px;}
  .rent-event{padding:12px 13px;border-radius:12px;}

  /* Launch modal */
  .modal-blob{padding:32px 22px;border-radius:12% 88% 88% 12% / 12% 12% 88% 88%;}
  .soon-blob{border-radius:16px !important;padding:28px 18px;}
  .soon-sticker{width:68px;height:68px;}
  .soon-title{font-size:1.1rem;}
  .soon-body{font-size:.84rem;}
  .soon-cta-row .btn{flex:1 1 auto;font-size:.78rem;padding:9px 12px;}
  .modal-inner{padding:16px 14px;max-height:calc(88vh - 64px);}
  .modal-close{top:-10px;right:-10px;width:32px;height:32px;font-size:.8rem;}

  /* Footer */
  /* Footer: single column, meetboa-style stack */
  .site-footer{padding:32px 0 24px;}
  .ft-top{grid-template-columns:1fr;gap:26px;padding-bottom:22px;}
  .ft-desc{font-size:.88rem;max-width:none;}
  .ft-col h4{margin:0 0 12px;font-size:.92rem;}
  .ft-link{font-size:.88rem;margin-bottom:11px;}
  .ft-contracts-grid{grid-template-columns:1fr;gap:0;}
  .ft-bottom{flex-direction:column;gap:8px;padding-top:14px;}
  .ft-line{font-size:.74rem;}
  /* keep the word 'Mainnet' readable here even though the header badge
     collapses to a dot on phones */
  .ft-contracts .network-badge{font-size:.6rem;width:auto;height:auto;padding:3px 9px 3px 7px;gap:5px;}

  /* Spacing & type scale — one step tighter than desktop, everywhere.
     Section padding, card padding, and the pixel-font sizes were all
     desktop numbers before this pass. */
  h2{font-size:1.1rem;}
  h3{font-size:.95rem;}
  .stats-section{padding:18px 0 4px;}
  .carousel-section{padding:14px 0 0;}
  .story-section, .plan-section{padding:26px 0;}
  .page-head{margin-bottom:12px;gap:8px;}
  .chart-card{padding:12px;border-radius:14px !important;}
  .chart-card-head{margin-bottom:8px;gap:4px;}
  .chart-card-head h3{font-size:.85rem;}
  .chart-link{font-size:.72rem;}
  .explore-toolbar{gap:8px;margin-bottom:12px;}
  .explore-search-input{padding:9px 12px;font-size:.84rem;}
  .explore-toolbar .quote-select{padding:9px 12px;font-size:.84rem;}
  .filter-chip{font-size:.62rem;padding:5px 10px;}
  .plan-lede{font-size:.84rem;}
  .plan-card{padding:14px;border-radius:14px !important;}
  .plan-num{font-size:1rem;margin-bottom:4px;}
  .plan-card h3{font-size:.95rem;}
  .plan-card p{font-size:.84rem;}
  .plan-whiteboard, .fw-teaser{padding:10px 12px;font-size:.8rem;margin-bottom:14px;}
  .doc-main{padding:18px 0 34px;}
  .doc-section{margin:22px 0;}
  .doc-section h2{font-size:1.05rem;}
  .doc-section p, .doc-list li{font-size:.86rem;}
  .doc-list{padding-left:18px;margin:8px 0;}
  .doc-list li{margin-bottom:6px;}
  .profile-header{padding:14px;gap:12px;border-radius:14px;}
  .profile-avatar{width:44px;height:44px;font-size:.85rem;}
  .profile-address-row code{font-size:.9rem;}

  /* Guide pages */
  .guide-steps{gap:6px;margin-bottom:20px;}
  .guide-step-pill{padding:6px 12px;font-size:.74rem;}
  .guide-list-item{padding:12px 14px;gap:10px;}
  .guide-next{padding:16px;margin:32px 0 4px;}
}

/* ---- ≤480px : small phones ---- */
@media (max-width:480px){
  .fw-split-grid{grid-template-columns:1fr;}
  .fw-hero .sticker{display:none;}
}

/* ---- ≤400px : very small phones ---- */
@media (max-width:400px){
  .ft-social a{width:34px;height:34px;}
}


/* ---------------- World map ---------------- */
.world-main{padding-top:10px;}
.world-hero{text-align:center;margin:10px 0 18px;}
.world-hero h1{font-size:clamp(1.3rem,4vw,2.4rem);margin:10px 0 8px;color:var(--green);}
.world-hero .lede{max-width:760px;margin:0 auto;color:var(--ink-dim);font-size:.95rem;line-height:1.6;}
.world-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px;}
.world-map-wrap{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:12px;}
.world-map-tools{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:8px;flex-wrap:wrap;}
.world-search{flex:1 1 260px;background:var(--void);border:1px solid var(--line);border-radius:10px;padding:9px 12px;color:var(--ink);font-family:'Sora';font-size:.85rem;}
.world-legend{display:flex;gap:12px;font-size:.72rem;color:var(--ink-dim);}
.world-legend .lg::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:middle;}
.world-legend .lg-open::before{background:#3a5c46;}
.world-map{position:relative;background:#070c09;border-radius:12px;overflow:hidden;min-height:220px;}
.world-svg{width:100%;height:auto;display:block;cursor:grab;background:#05090a;}
.world-svg:active{cursor:grabbing;}
.w-sphere{stroke:rgba(204,255,0,.10);stroke-width:1;}
.w-graticule{fill:none;stroke:rgba(255,255,255,.035);stroke-width:.5;pointer-events:none;}
/* Unclaimed land now reads as land, not a void — a muted sage tone, clearly
   territory, clearly not yet claimed (the vivid lime below is reserved for
   that). */
.w-land{fill:#243a2c;stroke:rgba(255,255,255,.06);stroke-width:.4;cursor:pointer;transition:fill .2s;}
.w-land.is-open:hover{fill:#324f3b;}
/* Two claimed states, no time window: protected (strong lime, at/above the
   reset mcap) or resettable (a red tint, matching the marker's warning
   color) — the map itself shows which capitals are currently vulnerable. */
/* Claimed territory needs to read at a glance even for a small country —
   fill alone wasn't enough at map scale, so it also gets a visibly
   thicker, glowing border (same filter used on the capital gem) so the
   outline itself lights up regardless of how small the shape is. */
/* Claimed territory is always the neon lime accent, regardless of
   protected/resettable — resettable is signaled by the capital marker
   (pulsing red gem) instead, so a claim never reads as a "warning"
   color on the land itself. */
.w-land.is-claimed{stroke-width:1.6;filter:url(#w-glow);fill:url(#w-claimed-fill);stroke:#ccff00;}
.w-land.is-claimed:hover{filter:url(#w-glow) brightness(1.15);}
.w-land.is-none{fill:#182a1f;cursor:default;}
.w-borders{fill:none;stroke:#05090a;stroke-width:.6;pointer-events:none;}
.w-cap{cursor:pointer;}
.w-cap .w-shadow{fill:#000;opacity:.35;}
.w-cap .w-halo{fill:none;stroke:rgba(204,255,0,.4);stroke-width:1;opacity:0;transition:opacity .15s;}
.w-cap:hover .w-halo{opacity:1;}
/* Open capital: an understated ring — available, nothing to show off yet. */
.w-ring{fill:none;stroke:rgba(255,255,255,.5);stroke-width:1;transition:stroke .15s;}
.w-cap:hover .w-ring{stroke:var(--green);}
.w-cap.is-claimed .w-ring{display:none;}
/* Claimed capital: a small faceted gem on a pin — the marker itself carries
   the same lime accent as a secured territory. */
.w-gem{display:none;}
.w-cap.is-claimed .w-gem{display:block;filter:url(#w-glow);}
.w-pin{stroke:rgba(6,10,7,.9);stroke-width:1;}
.w-gem-body{fill:url(#w-gem-fill);stroke:#5c7300;stroke-width:.5;}
.w-gem-facet{fill:#fff;opacity:.22;}
.w-gem-shine{fill:#fff;opacity:.85;}
.w-cap.is-claimed.is-resettable .w-gem-body{fill:var(--red);stroke:#7a1f1f;}
.w-cap.is-claimed.is-resettable .w-gem{animation:w-pulse 1.6s ease-in-out infinite;}
.w-cap.is-claimed.is-resettable .w-halo{stroke:rgba(255,107,107,.55);opacity:1;}
@keyframes w-pulse{0%,100%{opacity:1;}50%{opacity:.5;}}
.w-chip{pointer-events:none;opacity:0;transition:opacity .15s;}
.w-cap.is-claimed .w-chip{opacity:1;}
.w-chip rect{fill:rgba(6,10,7,.85);stroke:rgba(204,255,0,.25);stroke-width:.6;}
.w-chip-text{font-family:'Sora';font-size:9.5px;font-weight:700;fill:var(--ink);}
/* Country names: soft, low-contrast against the land so a fully zoomed-out
   click target still reads as a country, not a label directory. Halo via
   paint-order instead of a background box — a box per label at this count
   is what "지저분" looks like; a stroke halo doesn't. */
.w-country-label{
  font-family:'Sora';font-weight:600;fill:rgba(255,255,255,.72);
  paint-order:stroke;stroke:rgba(5,9,10,.75);stroke-width:2.5px;stroke-linejoin:round;
  text-anchor:middle;pointer-events:none;user-select:none;
  transition:opacity .25s;
}
.lg-reset::before{background:var(--red) !important;}
.lg-protected::before{background:#ccff00 !important;}
.world-hint{font-size:.72rem;color:var(--ink-dim);text-align:center;margin:8px 0 0;}
.world-list-wrap{margin-top:22px;}
.world-filters{display:flex;gap:8px;margin:10px 0;}
.world-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
.world-row{display:flex;align-items:center;gap:12px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 10px;cursor:pointer;color:var(--ink);font-family:'Sora';transition:border-color .15s;}
.world-row:hover{border-color:rgba(57,255,136,.45);}
.world-row.is-claimed{border-color:rgba(255,182,72,.35);}
.world-row-logo{width:40px;height:40px;border-radius:9px;flex:0 0 auto;background:#0b1510;}
.world-row-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;}
.world-row-name{font-weight:700;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.world-row-cap{font-size:.74rem;color:var(--ink-dim);}
.world-row-right{text-align:right;display:flex;flex-direction:column;flex:0 0 auto;}
.world-row-mcap{font-family:'Silkscreen';font-size:.72rem;color:var(--amber);}
.world-row-sub{font-size:.66rem;color:var(--ink-dim);}
.world-row-open{font-family:'Silkscreen';font-size:.6rem;color:var(--green);letter-spacing:.06em;text-transform:uppercase;}
/* My Capitals + Recent Activity */
.world-mine-wrap,.world-feed-wrap{margin-top:22px;}
.world-feed{display:flex;flex-direction:column;gap:8px;}
.world-feed-row{width:100%;}
.world-feed-row.is-reset-event{border-color:rgba(255,107,107,.35);}
.world-feed-badge{font-family:'Silkscreen';font-size:.55rem;padding:2px 7px;border-radius:100px;margin-left:6px;vertical-align:middle;}
.world-feed-badge.claim{color:#08150c;background:#ccff00;}
.world-feed-badge.reset{color:var(--red);background:rgba(255,107,107,.15);border:1px solid rgba(255,107,107,.4);}
.mono-inline{font-family:monospace;font-size:.85em;}
.world-row-right .btn-mini{margin-top:4px;}
.nav-active{color:var(--green) !important;}
/* claim modal */
.claim-card{max-width:520px;}
.claim-head{display:flex;gap:14px;align-items:center;margin-bottom:14px;}
.claim-logo{width:84px;height:84px;border-radius:16px;background:#0b1510;flex:0 0 auto;}
.claim-flag{font-size:1.3rem;line-height:1;}
.claim-title{margin:2px 0 2px;font-size:1.3rem;}
.claim-sub{font-size:.8rem;color:var(--ink-dim);}
.claim-terms{display:flex;flex-direction:column;gap:6px;background:var(--void);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:12px;}
.claim-term{display:flex;justify-content:space-between;gap:12px;font-size:.82rem;}
.claim-term .dt{color:var(--ink-dim);flex:0 0 auto;}
.claim-term .dd{text-align:right;}
.claim-devbuy{display:block;font-size:.8rem;color:var(--ink-dim);margin-bottom:10px;}
.claim-devbuy input{display:block;width:100%;margin-top:6px;background:var(--void);border:1px solid var(--line);border-radius:8px;padding:9px 12px;color:var(--ink);font-family:'Sora';font-size:.85rem;}
.claim-devbuy input:focus{outline:none;border-color:var(--green);}
.claim-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;}
.claim-actions{display:flex;gap:10px;flex-wrap:wrap;}
.claim-actions .btn{flex:1 1 auto;text-align:center;}
.status.success{background:rgba(57,255,136,.08);border:1px solid rgba(57,255,136,.3);color:var(--green);}
/* ---- World hero: tutorial button ---- */
.world-hero{position:relative;}
.world-nhood-pill{
  display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;
  margin-top:16px;background:var(--panel);border:1px solid var(--line);border-radius:100px;
  padding:7px 7px 7px 16px;font-family:monospace;font-size:.76rem;
}
.world-nhood-label{font-family:'Silkscreen';font-size:.62rem;color:var(--ink-dim);letter-spacing:.03em;}
.world-nhood-ca{color:var(--green);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px;}
.world-nhood-burns{margin-top:22px;}
.nhood-burn-total-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;text-align:center;margin-bottom:10px;}
.nhood-burn-total-card .stat-value{font-family:'Silkscreen';font-size:1.3rem;color:var(--red);margin:4px 0;}
.nhood-burn-list{display:flex;flex-direction:column;gap:6px;}
.nhood-burn-row{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-family:'Sora';font-size:.82rem;}
.nhood-burn-ord{color:var(--ink-dim);flex:0 0 auto;min-width:64px;}
.nhood-burn-amt{flex:1 1 auto;font-weight:700;color:var(--ink);}
/* World Passport */
.world-passport-wrap{margin-top:22px;}
.passport-actions{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0;}
.passport-bonus{font-size:.8rem;color:var(--amber);margin:6px 0 10px;}
.passport-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;}
.passport-stamp{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--void);border:1px dashed var(--line);border-radius:12px;padding:14px 8px;text-align:center;opacity:.5;}
.passport-stamp.is-earned{opacity:1;border-style:solid;border-color:rgba(204,255,0,.5);background:rgba(204,255,0,.06);}
.passport-stamp-flag{font-size:1.4rem;}
.passport-stamp-name{font-size:.72rem;font-weight:700;color:var(--ink);}
.passport-stamp-mark{font-family:'Silkscreen';font-size:.55rem;letter-spacing:.05em;color:var(--ink-dim);}
.passport-stamp.is-earned .passport-stamp-mark{color:#ccff00;transform:rotate(-8deg);display:inline-block;}
/* Leaderboard modal */
.leaderboard-card{max-width:420px;text-align:left;}
.leaderboard-title{margin:0 0 2px;font-size:1.15rem;}
.leaderboard-sub{font-size:.78rem;color:var(--ink-dim);margin-bottom:14px;}
.leaderboard-list{display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow-y:auto;}
.leaderboard-row{display:flex;align-items:center;gap:10px;background:var(--void);border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-family:'Sora';font-size:.82rem;}
.leaderboard-row.is-bonus{border-color:rgba(204,255,0,.5);}
.leaderboard-rank{font-family:'Silkscreen';font-size:.68rem;color:var(--ink-dim);flex:0 0 auto;width:28px;}
.leaderboard-addr{font-family:monospace;flex:0 0 auto;}
.leaderboard-flags{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.leaderboard-count{font-family:'Silkscreen';font-size:.72rem;color:#ccff00;flex:0 0 auto;}
/* Nav "More" dropdown (World / Rent / 모험) */
.nav-dropdown{position:relative;display:inline-flex;}
.nav-more-trigger{
  padding:8px 14px;border-radius:100px;border:2px solid transparent;background:transparent;
  transition:all .15s ease;font-weight:600;display:inline-flex;align-items:center;
  color:var(--ink-dim);font-family:'Sora';font-size:.88rem;cursor:pointer;white-space:nowrap;
}
.nav-more-trigger:hover{background:var(--panel-hi);border-color:var(--green);color:var(--green);transform:translateY(-1px);}
.nav-more-trigger.nav-active{color:var(--green);}
.nav-caret{margin-left:5px;font-size:.7em;transition:transform .15s;}
.nav-dropdown.is-open .nav-caret{transform:rotate(180deg);}
.nav-more-menu{display:none;min-width:160px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:6px;box-shadow:0 8px 24px rgba(0,0,0,.4);z-index:210;}
.nav-dropdown.is-open .nav-more-menu{display:block;}
.nav-more-menu a{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:10px;color:var(--ink);text-decoration:none;font-weight:600;font-size:.85rem;font-family:'Sora';}
.nav-more-menu a:hover{background:var(--panel-hi);color:var(--green);}
.nav-more-menu a.nav-active{color:var(--green);}
/* Adventure (모험) page */
.adv-disclaimer{background:rgba(255,182,72,.06);border:1px solid rgba(255,182,72,.35);border-radius:16px;padding:16px 18px;margin-bottom:18px;}
.adv-disclaimer-head{font-family:'Silkscreen';font-size:.72rem;color:var(--amber);letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px;}
.adv-disclaimer-list{margin:0;padding-left:20px;font-size:.82rem;line-height:1.6;color:var(--ink-dim);}
.adv-disclaimer-list li{margin-bottom:6px;}
.adv-disclaimer-list b{color:var(--ink);}
.adv-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px;}
#cn-stats{margin-top:32px;}
.adv-explore-wrap, .adv-launch-wrap{margin-top:22px;}
.adv-explore-list{display:flex;flex-direction:column;gap:8px;}
.adv-launch-row{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;text-decoration:none;color:var(--ink);transition:border-color .15s;}
.adv-explore-controls{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:10px 0 14px;}
.adv-sort-group,.adv-period-group{display:flex;gap:6px;}
.adv-launch-logo{width:36px;height:36px;border-radius:9px;flex:0 0 auto;object-fit:cover;background:var(--void);}
.adv-launch-logo-blank{display:inline-block;background:var(--void);border:1px dashed var(--line);}
/* On the Chinese page, the active filter-chip picks up the red accent
   instead of the site's default green, matching the spotlight theme. */
.adv-cn .filter-chip.active{background:rgba(255,90,90,.16);border-color:rgba(255,90,90,.5);color:#ff9b9b;}
.adv-launch-row:hover{border-color:rgba(57,255,136,.45);}
.adv-launch-row.is-graduated{border-color:rgba(204,255,0,.4);}
.adv-launch-main{display:flex;flex-direction:column;gap:2px;min-width:0;}
.adv-launch-name{font-weight:700;font-size:.9rem;}
.adv-launch-symbol{color:var(--ink-dim);font-weight:500;}
.adv-launch-sub{font-size:.74rem;color:var(--ink-dim);}
.adv-launch-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:0 0 auto;}
.adv-launch-badge.is-grad{font-family:'Silkscreen';font-size:.6rem;color:#ccff00;background:rgba(204,255,0,.12);border:1px solid rgba(204,255,0,.4);padding:3px 9px;border-radius:100px;}
.adv-launch-progress{width:100px;height:6px;background:var(--void);border-radius:100px;overflow:hidden;}
.adv-launch-progress-bar{display:block;height:100%;background:var(--green);}
.adv-launch-pct{font-size:.68rem;color:var(--ink-dim);}
.adv-gate-closed{background:var(--void);border:1px solid var(--line);border-radius:14px;padding:16px;}
.adv-gate-closed-head{font-weight:700;margin-bottom:6px;}
.adv-launch-form{display:flex;flex-direction:column;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;}
.adv-launch-form label{display:flex;flex-direction:column;gap:5px;font-size:.8rem;color:var(--ink-dim);font-weight:600;}
.adv-launch-form input, .adv-launch-form textarea, .adv-launch-form select{
  background:var(--void);border:1px solid var(--line);border-radius:8px;padding:9px 12px;
  color:var(--ink);font-family:'Sora';font-size:.85rem;font-weight:400;
}
.adv-launch-form input:focus, .adv-launch-form textarea:focus, .adv-launch-form select:focus{outline:none;border-color:var(--green);}
.adv-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.adv-checkbox{flex-direction:row !important;align-items:center;gap:8px !important;}
.adv-checkbox input{width:auto;}
/* Chinese Adventure page: Noto Sans SC for CJK glyphs, English font-family elsewhere untouched */
.adv-cn{font-family:'Noto Sans SC','Sora',sans-serif;}
.adv-cn .adv-cn-title{letter-spacing:.08em;}
.adv-cn .lede, .adv-cn .adv-disclaimer-list, .adv-cn .hint, .adv-cn .adv-launch-form label{font-family:'Noto Sans SC','Sora',sans-serif;}
/* Spotlight card (red theme) */
.adv-spotlight-warning{background:rgba(255,107,107,.08);border:1px solid rgba(255,107,107,.4);border-radius:14px;padding:12px 16px;font-size:.82rem;line-height:1.6;color:var(--ink-dim);margin:18px 0 12px;font-family:'Noto Sans SC','Sora',sans-serif;}
.adv-spotlight-warning b{color:var(--red);}
.adv-spotlight-card{
  position:relative;overflow:hidden;border-radius:22px;margin-bottom:20px;
  display:flex;gap:0;
  background:linear-gradient(160deg,#3a0a0a 0%,#1a0505 60%,#0d0303 100%);
  border:1px solid rgba(255,90,90,.5);
  box-shadow:0 0 0 1px rgba(255,90,90,.15) inset,0 14px 34px rgba(180,20,20,.28);
}
.adv-spotlight-card::before{
  content:"";position:absolute;top:-40%;right:-15%;width:260px;height:260px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,60,60,.35) 0%,rgba(255,60,60,0) 70%);pointer-events:none;
}
.adv-spotlight-img{width:180px;flex:0 0 auto;object-fit:contain;padding:24px;box-sizing:border-box;background:radial-gradient(circle,rgba(255,90,90,.12) 0%,rgba(255,90,90,0) 75%);}
.adv-spotlight-body{padding:20px 22px 20px 0;flex:1 1 auto;min-width:0;position:relative;z-index:1;}
.adv-spotlight-badge{display:inline-block;font-family:'Silkscreen';font-size:.58rem;letter-spacing:.04em;color:#ffb0b0;background:rgba(255,90,90,.15);border:1px solid rgba(255,90,90,.45);padding:4px 10px;border-radius:100px;margin-bottom:10px;}
.adv-spotlight-name{font-family:'Noto Sans SC','Sora',sans-serif;font-weight:700;font-size:1.25rem;color:#fff;}
.adv-spotlight-symbol{font-family:'Silkscreen';font-size:.85rem;color:#ff9b9b;font-weight:400;}
.adv-spotlight-tagline{font-size:.76rem;color:rgba(255,255,255,.6);margin:4px 0 12px;line-height:1.5;}
.adv-spotlight-ca-row{display:flex;align-items:center;gap:8px;margin-bottom:14px;}
.adv-spotlight-ca{font-family:monospace;font-size:.68rem;color:rgba(255,255,255,.55);word-break:break-all;}
.adv-spotlight-ca-row .btn-copy{flex:0 0 auto;background:rgba(255,255,255,.12);color:#fff;}
.adv-spotlight-ca-row .btn-copy:hover{background:rgba(255,255,255,.22);}
.adv-spotlight-stats{display:flex;gap:20px;margin-bottom:16px;flex-wrap:wrap;}
.adv-spotlight-stat{display:flex;flex-direction:column;gap:2px;}
.adv-spotlight-stat-label{font-size:.66rem;color:rgba(255,255,255,.5);}
.adv-spotlight-stat-value{font-family:'Silkscreen';font-size:.9rem;color:#fff;}
.adv-spotlight-actions{display:flex;gap:10px;flex-wrap:wrap;}
.adv-spotlight-actions .btn-primary{background:#ff4d4d;color:#fff;}
.adv-spotlight-actions .btn{border-color:rgba(255,90,90,.4);color:#ff9b9b;}
.qiao-buy-btn{
  background:linear-gradient(155deg,#ff6b6b 0%,#e02e2e 55%,#a30f0f 100%);
  color:#fff;border:1px solid rgba(255,180,180,.5);
  box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 8px 18px rgba(200,20,20,.4);
  text-shadow:0 1px 2px rgba(0,0,0,.35);font-weight:800;letter-spacing:.01em;
  transition:transform .15s,box-shadow .15s;
}
.qiao-buy-btn:hover{transform:translateY(-1px);box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 12px 24px rgba(200,20,20,.5);}
.qiao-buy-btn:active{transform:translateY(0);}
.qiao-chart-btn{
  background:rgba(255,90,90,.08);color:#ffb0b0;border:1px solid rgba(255,120,120,.45);
  font-weight:700;transition:background .15s,border-color .15s;
}
.qiao-chart-btn:hover{background:rgba(255,90,90,.18);border-color:rgba(255,150,150,.7);}
/* Story / lore */
.adv-spotlight-story{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px 22px;margin-bottom:22px;}
.adv-spotlight-story-head{font-family:'Silkscreen';font-size:.72rem;color:#ff9b9b;letter-spacing:.03em;margin-bottom:10px;}
.adv-spotlight-story p{font-size:.84rem;line-height:1.7;color:var(--ink-dim);margin:0 0 10px;font-family:'Noto Sans SC','Sora',sans-serif;}
.adv-spotlight-story p b{color:var(--ink);}
.adv-spotlight-story a{color:#ff9b9b;}
.adv-spotlight-story .adv-spotlight-disclaimer-line{font-style:italic;font-size:.74rem;color:rgba(255,255,255,.4);}
.adv-spotlight-story hr{border:none;border-top:1px dashed var(--line);margin:18px 0;}
/* Spotlight detail modal */
.spot-modal-card{max-width:560px;}
.spot-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;}
.spot-modal-name{font-family:'Noto Sans SC','Sora',sans-serif;font-weight:700;font-size:1.15rem;}
.spot-modal-symbol{font-family:'Silkscreen';font-size:.8rem;color:var(--red);}
.spot-modal-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;}
.spot-modal-stat{background:var(--void);border:1px solid var(--line);border-radius:12px;padding:10px 12px;}
.spot-modal-chart{border-radius:14px;overflow:hidden;border:1px solid var(--line);height:360px;}
.spot-modal-chart iframe{width:100%;height:100%;border:0;}
/* ===== 橋 page — playful/meme layout ===== */
.qiao-main{padding-bottom:40px;}
.qiao-hero{display:flex;align-items:center;gap:36px;padding:28px 0 36px;}
.qiao-hero-art{position:relative;flex:0 0 auto;width:260px;height:260px;}
.qiao-hero-img{
  width:260px;height:260px;border-radius:38% 62% 63% 37% / 41% 44% 56% 59%;object-fit:cover;
  border:4px solid #ff4d4d;box-shadow:0 0 0 8px rgba(255,77,77,.15),0 20px 50px rgba(200,30,30,.45);
  animation:qiaoBounce 2.4s ease-in-out infinite;
}
@keyframes qiaoBounce{0%,100%{transform:translateY(0) rotate(-2deg);}50%{transform:translateY(-14px) rotate(2deg);}}
.qiao-float{position:absolute;font-size:2rem;animation:qiaoFloat 3.2s ease-in-out infinite;pointer-events:none;filter:drop-shadow(0 6px 10px rgba(0,0,0,.4));}
.qiao-float-1{top:-10px;left:-18px;animation-delay:0s;}
.qiao-float-2{bottom:-6px;right:-14px;animation-delay:.8s;}
.qiao-float-3{top:40%;right:-34px;animation-delay:1.6s;font-size:1.6rem;}
@keyframes qiaoFloat{0%,100%{transform:translateY(0) rotate(-6deg);}50%{transform:translateY(-10px) rotate(6deg);}}
.qiao-hero-text{flex:1 1 auto;min-width:0;}
.qiao-title{font-size:clamp(3rem,10vw,6rem);line-height:1;margin:10px 0 0;color:#ff5555;text-shadow:0 0 30px rgba(255,80,80,.45);}
.qiao-sub{font-family:'Silkscreen';font-size:.9rem;color:#ffb0b0;letter-spacing:.06em;margin:6px 0 14px;}
.qiao-hero-text .lede{max-width:520px;margin:0 0 18px;}
.qiao-hero-cta{display:flex;gap:10px;flex-wrap:wrap;}
.qiao-btn-red{background:#ff4d4d !important;color:#fff !important;}
.qiao-wobble{display:inline-block;animation:qiaoWobble 2.8s ease-in-out infinite;transform-origin:50% 100%;}
@keyframes qiaoWobble{0%,100%{transform:rotate(-2deg);}50%{transform:rotate(2deg);}}
.qiao-section{margin:34px 0;}
.qiao-section-head{margin-bottom:14px;}
.qiao-section-head h2{font-size:1.25rem;color:#ff5555;margin:0;}
.qiao-section-sub{display:block;font-size:.8rem;color:var(--ink-dim);margin-top:4px;}
.qiao-section-muted .qiao-section-head h2{color:var(--ink-dim);}
.qiao-game-wrap{background:#1a0505;border:2px solid rgba(255,77,77,.5);border-radius:18px;overflow:hidden;box-shadow:0 0 0 6px rgba(255,77,77,.08),0 18px 40px rgba(180,20,20,.35);}
#qiao-game{display:block;width:100%;height:auto;touch-action:none;cursor:pointer;user-select:none;}
.qiao-game-hint{font-size:.76rem;color:var(--ink-dim);text-align:center;margin:10px 0 0;}
.qiao-game-hint kbd{font-family:monospace;background:var(--void);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:.72rem;}
.qiao-footer-note{font-size:.74rem;color:var(--ink-dim);text-align:center;margin-top:40px;font-style:italic;}
/* cnPONS stock picker */
.cn-stock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:24px;}
/* cnPONS: overall red/Chinese-toned theme. --green cascades to most
   buttons/links/highlights site-wide via var(--green) — overriding it
   scoped to this page retints all of that in one place. A handful of
   components hardcode the green as a raw rgba() instead of the variable
   (hero background glow, card hover backgrounds) — those get their own
   scoped override right below since the variable swap alone won't
   reach them. */
body.cnpons-page{--green:#ff4d4d;--green-dim:#a31f1f;}
/* Hide the Home/Explore/Launch/More nav on this page only — brand logo
   and wallet slot stay. */
body.cnpons-page header nav{display:none;}
body.cnpons-page .home-hero{background:
    radial-gradient(700px 380px at 20% 0%, rgba(255,77,77,.16), transparent 60%),
    radial-gradient(600px 380px at 90% 20%, rgba(255,182,72,.12), transparent 55%);}
body.cnpons-page .btn-copy:hover{background:#ff7a7a;}
body.cnpons-page .cn-stock-card:hover{border-color:rgba(255,77,77,.45);}
body.cnpons-page .cn-stock-card.is-picked{background:rgba(255,77,77,.08);}
body.cnpons-page .adv-launch-row:hover{border-color:rgba(255,77,77,.45);}
body.cnpons-page .adv-disclaimer{background:rgba(255,77,77,.06);border-color:rgba(255,77,77,.3);}
body.cnpons-page .adv-disclaimer-head{color:#ff9b9b;}
/* Price-change semantics (up=green, down=red) shouldn't follow the page's
   overall red-tone accent swap — a green --> red override would make a
   positive change badge show red text on a green-tinted background. */
body.cnpons-page .card-badge.up{color:#39ff88;}
/* Hero CTA: bigger, glossier — this is the one thing on the page you're
   most likely here to do */
.cn-hero-launch-btn{
  font-size:1.15rem;padding:18px 40px;border-radius:16px;
  background:linear-gradient(155deg,#ff6b6b 0%,#e02e2e 55%,#a30f0f 100%);
  color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35);
  box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 7px 0 rgba(90,10,10,.6);
  border:2px solid rgba(255,180,180,.4);
}
.cn-hero-launch-btn:hover{box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 9px 0 rgba(90,10,10,.6);}
.cn-hero-launch-btn:active{box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 3px 0 rgba(90,10,10,.6);}
/* Hero logo, desktop: text left, logo right, balanced side by side */
.cn-hero-split{display:flex;align-items:center;justify-content:space-between;gap:48px;}
.cn-hero-split .home-hero-content{max-width:560px;flex:1 1 auto;}
.cn-hero-logo{width:260px;height:260px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 18px 34px rgba(200,20,20,.35));}
/* Input with a persistent unit suffix (Dev buy: shows the picked stock's
   own symbol, e.g. "SIMO" — never "ETH", since that's not what this
   field is actually paid in) */
.cn-input-suffix-wrap{position:relative;display:flex;align-items:center;}
.cn-input-suffix-wrap input{width:100%;padding-right:56px;}
.cn-input-suffix{position:absolute;right:12px;font-family:'Silkscreen';font-size:.7rem;color:var(--ink-dim);pointer-events:none;}
/* Liquidity warning popup */
.cn-liquidity-modal-box{
  width:100%;max-width:440px;background:var(--panel);border:2px solid rgba(255,182,72,.5);
  border-radius:20px;padding:28px;box-shadow:0 12px 0 rgba(0,0,0,.35);
}
.cn-liquidity-modal-head{font-family:'Silkscreen';font-size:1rem;color:var(--amber);margin-bottom:14px;}
.cn-liquidity-modal-box p{font-size:.88rem;color:var(--ink-dim);line-height:1.5;margin:0 0 14px;}
.cn-liquidity-modal-box p b{color:var(--ink);}
.cn-liquidity-modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px;}
.cn-liquidity-modal-actions .btn{flex:1 1 auto;text-align:center;}
/* Language toggle, grouped with the wallet button on the right so the
   headbar stays a clean two-block layout (brand | lang+wallet) instead
   of three items fighting for space */
.cn-header-right{display:flex;align-items:center;gap:10px;}
.cn-lang-toggle{display:flex;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:100px;padding:3px;flex-shrink:0;}
.cn-lang-toggle button{border:none;background:transparent;color:var(--ink-dim);font-family:'Sora';font-size:.75rem;font-weight:700;padding:5px 12px;border-radius:100px;cursor:pointer;white-space:nowrap;}
.cn-lang-toggle button.active{background:var(--green);color:#08150c;}
/* Explore grid toolbar: search + sort */
.cn-explore-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px;}
.cn-explore-toolbar .world-search{flex:1 1 260px;margin-bottom:0;}
.cn-sort-group{display:flex;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:100px;padding:3px;flex-shrink:0;}
.cn-sort-group button{border:none;background:transparent;color:var(--ink-dim);font-family:'Sora';font-size:.78rem;font-weight:700;padding:7px 14px;border-radius:100px;cursor:pointer;white-space:nowrap;}
.cn-sort-group button.active{background:var(--green);color:#08150c;}
@media (max-width:600px){
  .cn-sort-group{width:100%;justify-content:space-between;}
  .cn-sort-group button{flex:1;padding:7px 6px;font-size:.7rem;}
}
/* "How a launch actually works" — technical spec grid */
.cn-mechanics{margin-top:48px;padding-top:32px;border-top:1px solid var(--line);}
.cn-mechanics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:20px 0 24px;}
.cn-mech-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px;}
.cn-mech-card p{font-size:.84rem;color:var(--ink-dim);line-height:1.55;margin:0;}
.cn-mech-card p code{background:var(--void);padding:1px 5px;border-radius:5px;font-size:.8em;}
.cn-mech-title{font-family:'Silkscreen';font-size:.82rem;color:var(--ink);margin-bottom:10px;}
.cn-mech-card-risk{background:rgba(255,182,72,.06);border-color:rgba(255,182,72,.35);grid-column:1 / -1;}
.cn-mech-card-risk .cn-mech-title{color:var(--amber);}
.cn-mech-address{font-size:.74rem;color:var(--ink-dim);text-align:center;}
.cn-mech-address code{font-family:'Silkscreen';font-size:.68rem;background:var(--panel);border:1px solid var(--line);padding:3px 8px;border-radius:6px;}
/* Header brand for this page: just the 橋 logo mark, no text — leftmost
   in the header, clean and simple (no drop-shadow/decoration, which read
   as clutter at this small a size) */
.cn-brand{gap:8px;}
.cn-brand-logo{width:34px;height:34px;object-fit:contain;border-radius:9px;flex-shrink:0;display:block;}
/* Sub-nav: Explore / Forum / Analytics */
.cn-subnav-wrap{border-bottom:1px solid var(--line);background:rgba(0,0,0,.15);}
.cn-subnav{display:flex;gap:4px;padding:10px 24px;max-width:var(--maxw);margin:0 auto;}
.cn-subnav a,.cn-subnav button{
  font-family:'Sora';font-size:.82rem;font-weight:700;color:var(--ink-dim);
  background:transparent;border:none;padding:7px 14px;border-radius:100px;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;
}
.cn-subnav a.active{background:var(--panel);color:var(--ink);}
.cn-subnav button:hover{color:var(--ink);}
.cn-soon-tag{font-family:'Silkscreen';font-size:.55rem;color:var(--amber);background:rgba(255,182,72,.12);border:1px solid rgba(255,182,72,.35);padding:1px 6px;border-radius:100px;}
/* Analytics page */
.cn-analytics-head{margin-bottom:8px;}
.cn-analytics-head h1{font-family:'Silkscreen';font-size:1.6rem;margin-bottom:8px;}
.cn-analytics-section{margin-top:36px;}
.cn-analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-top:16px;}
.cn-mech-note{font-size:.78rem;color:var(--ink-dim);margin:0 0 12px;line-height:1.5;}
.cn-mech-note code{background:var(--void);padding:1px 5px;border-radius:5px;font-size:.9em;}
.cn-analytics-summary{font-size:.86rem;color:var(--ink-dim);margin-bottom:14px;line-height:1.5;}
.cn-analytics-summary strong{color:var(--ink);font-family:'Silkscreen';font-size:.95em;}

/* Simple flexbox bar chart — no charting library, matches the site's
   general no-extra-dependency approach (ethers.js is the one exception) */
.cn-bar-chart{display:flex;align-items:flex-end;gap:4px;height:120px;margin-bottom:8px;}
.cn-bar-chart .cn-bar{flex:1;background:linear-gradient(180deg,#ff6b6b,#a30f0f);border-radius:4px 4px 0 0;min-height:2px;position:relative;}
.cn-bar-chart .cn-bar:hover::after{
  content:attr(data-tip);position:absolute;bottom:100%;left:50%;transform:translateX(-50%);
  background:var(--void);border:1px solid var(--line);padding:4px 8px;border-radius:6px;
  font-size:.68rem;white-space:nowrap;margin-bottom:4px;color:var(--ink);z-index:5;
}
.cn-chart-legend{display:flex;justify-content:space-between;font-size:.65rem;color:var(--ink-dim);}

/* Holder / leaderboard bar-rows */
.cn-holder-list,.cn-leaderboard{display:flex;flex-direction:column;gap:10px;}
.cn-holder-row,.cn-lb-row{display:flex;flex-direction:column;gap:4px;}
.cn-holder-row-top,.cn-lb-row-top{display:flex;justify-content:space-between;font-size:.8rem;gap:8px;}
.cn-holder-row-top .addr,.cn-lb-row-top .name{color:var(--ink-dim);font-family:'Silkscreen';font-size:.7rem;}
.cn-holder-row-top .pct,.cn-lb-row-top .val{color:var(--ink);font-weight:700;white-space:nowrap;}
.cn-holder-bar-track,.cn-lb-bar-track{height:8px;background:var(--void);border-radius:100px;overflow:hidden;}
.cn-holder-bar-fill{height:100%;background:linear-gradient(90deg,#ff6b6b,#ff3b3b);border-radius:100px;}
.cn-lb-bar-fill{height:100%;background:linear-gradient(90deg,var(--green-dim),var(--green));border-radius:100px;}
.cn-flag-row{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;padding:6px 0;border-bottom:1px solid var(--line);}
.cn-flag-row:last-child{border-bottom:none;}
.cn-flag-row .mult{font-family:'Silkscreen';font-size:.7rem;color:var(--amber);}
.cn-health-pill{font-family:'Silkscreen';font-size:.62rem;padding:2px 8px;border-radius:100px;}
.cn-health-pill.high{background:rgba(57,255,136,.14);color:#39ff88;}
.cn-health-pill.low{background:rgba(255,182,72,.14);color:var(--amber);}
.cn-health-pill.none{background:rgba(255,107,107,.14);color:var(--red);}
/* Bottom nav — icon-over-label, always docked to the bottom of the
   viewport (desktop and mobile alike), matching an app-style persistent
   bar rather than a scroll-away page section. z-index stays below
   .modal-overlay's 200 so popups always render above it. Page content
   gets bottom padding (below, on body.cnpons-page) equal to the bar's
   real height so the last section is never hidden underneath it. */
.cn-bottom-nav{
  position:fixed;left:0;right:0;bottom:0;z-index:50;
  display:flex;justify-content:center;
  background:rgba(13,20,16,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-top:1px solid var(--line);
  padding:8px max(12px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-right));
}
.cn-bn-item{
  flex:1 1 0;max-width:120px;display:flex;flex-direction:column;align-items:center;gap:4px;
  padding:8px 4px;border-radius:14px;border:none;background:transparent;cursor:pointer;
  color:var(--ink-dim);font-family:'Sora';font-size:.66rem;font-weight:700;
  transition:color .15s,background .15s;
}
.cn-bn-item svg{width:21px;height:21px;}
.cn-bn-item:hover{color:var(--ink);background:var(--panel-hi);}
.cn-bn-item.active{color:var(--ink);}
.cn-bn-item.active svg{color:var(--green);}
body.cnpons-page{padding-bottom:64px;}
@media (max-width:520px){
  .cn-bn-item{font-size:.58rem;padding:7px 2px;gap:3px;}
  .cn-bn-item svg{width:19px;height:19px;}
  body.cnpons-page{padding-bottom:58px;}
}
@media (max-width:520px){
  .cn-header-right{gap:6px;}
  .cn-lang-toggle button{padding:5px 8px;font-size:.68rem;}
}
@media (max-width:900px){
  .cn-hero-split{flex-direction:column-reverse;text-align:center;gap:20px;}
  .cn-hero-split .home-hero-content{max-width:none;}
  .cn-hero-logo{width:150px;height:150px;}
  .cn-hero-split .hero-cta-row{justify-content:center;}
  /* The site-wide mobile header gives .brand an explicit order:1 (so it
     stays left of #wallet-slot's order:2, in the two-row phone layout
     every other page uses). cnPONS nests #wallet-slot inside
     .cn-header-right instead, which had no order set — defaulting to 0,
     lower than .brand's 1, so it was rendering BEFORE the logo and
     pushing it to the right. Give it the order #wallet-slot used to
     have directly. */
  .cn-header-right{order:2;}
}
.cn-stock-card{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--panel);border:2px solid var(--line);border-radius:14px;padding:14px 10px;cursor:pointer;font-family:'Sora';color:var(--ink);transition:border-color .15s,transform .15s;}
.cn-stock-card:hover{border-color:rgba(57,255,136,.4);transform:translateY(-2px);}
.cn-stock-card.is-picked{border-color:var(--green);background:rgba(57,255,136,.06);}
.cn-stock-logo{width:40px;height:40px;border-radius:9px;object-fit:contain;background:#fff;padding:4px;box-sizing:border-box;}
.cn-stock-name{font-size:.76rem;font-weight:700;text-align:center;line-height:1.25;}
.cn-stock-symbol{font-family:'Silkscreen';font-size:.62rem;color:var(--ink-dim);}
.cn-stock-mult{font-size:.6rem;color:var(--amber);}
@media (max-width:760px){
  .qiao-hero{flex-direction:column;text-align:center;gap:22px;padding-top:12px;}
  .qiao-hero-art{width:200px;height:200px;}
  .qiao-hero-img{width:200px;height:200px;}
  .qiao-hero-text .lede{margin:0 auto 16px;}
  .qiao-hero-cta{justify-content:center;}
}
.world-help-btn{
  position:absolute;top:0;right:0;display:inline-flex;align-items:center;gap:6px;
  background:var(--panel);border:1px solid var(--line);border-radius:100px;
  padding:8px 14px 8px 10px;color:var(--ink);font-family:'Sora';font-weight:700;font-size:.8rem;
  cursor:pointer;transition:border-color .15s,background .15s;
}
.world-help-btn:hover{border-color:rgba(57,255,136,.5);background:#182a1f;}
.world-help-icon{font-size:1rem;}

/* ---- Tutorial modal: a reference document, not a quick-action blob —
   rectangular, unrotated, independently-scrolling body under a fixed
   head+tabs, wider than the claim card since it's carrying real prose. ---- */
.help-card{
  max-width:660px;border-radius:22px;transform:none;animation:helpPop .2s ease-out;
  display:flex;flex-direction:column;padding:32px 30px 26px;max-height:86vh;
}
@keyframes helpPop{from{opacity:0;transform:scale(.96);}to{opacity:1;transform:scale(1);}}
.help-head{display:flex;align-items:center;gap:14px;flex:0 0 auto;margin-bottom:16px;}
.help-head-icon{font-size:2rem;line-height:1;}
.help-title{margin:0 0 2px;font-size:1.25rem;}
.help-sub{font-size:.8rem;color:var(--ink-dim);}
.help-tabs{display:flex;gap:8px;flex:0 0 auto;margin-bottom:16px;}
.help-scroll{overflow-y:auto;padding-right:6px;}
.help-pane{animation:helpPop .15s ease-out;}

/* summary tab */
.help-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;}
.help-sum-card{background:var(--void);border:1px solid var(--line);border-radius:14px;padding:14px;}
.help-sum-n{font-size:1.3rem;margin-bottom:6px;}
.help-sum-h{font-weight:700;font-size:.85rem;margin-bottom:4px;}
.help-sum-t{font-size:.76rem;color:var(--ink-dim);line-height:1.5;}
.help-cta{text-align:center;font-size:.82rem;color:var(--ink-dim);padding-top:4px;}

/* full guide tab */
.help-h3{font-size:1rem;margin:22px 0 8px;color:var(--green);}
.help-h3:first-child{margin-top:0;}
.help-p{font-size:.86rem;line-height:1.65;color:var(--ink-dim);margin:0 0 10px;}
.help-p b{color:var(--ink);}
.help-list{margin:0 0 10px;padding-left:20px;font-size:.86rem;line-height:1.65;color:var(--ink-dim);}
.help-list li{margin-bottom:6px;}
.help-list b{color:var(--ink);}
.help-steps{display:flex;flex-direction:column;gap:8px;margin-bottom:6px;}
.help-step{display:flex;gap:12px;background:var(--void);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:.84rem;line-height:1.55;color:var(--ink-dim);}
.help-step b{color:var(--ink);}
.help-step-n{flex:0 0 auto;width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:rgba(57,255,136,.14);color:var(--green);font-family:'Silkscreen';font-size:.62rem;}
.help-rule-box{display:flex;flex-direction:column;gap:10px;background:var(--void);border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:6px;}
.help-rule-row{display:flex;flex-direction:column;gap:3px;}
.help-rule-k{font-family:'Silkscreen';font-size:.7rem;color:var(--amber);}
.help-rule-v{font-size:.82rem;color:var(--ink-dim);line-height:1.5;}
.help-closing{text-align:center;font-size:.9rem;color:var(--ink);margin-top:20px;padding-top:16px;border-top:1px dashed var(--line);}
/* Country motto — a short inscription burned in with $NHOOD, shown next
   to the name wherever it appears. Distinct from the name itself so it
   reads as a flourish someone added, not part of the coin's real name. */
.motto-tag{color:var(--amber);font-style:italic;font-weight:500;font-size:.92em;}
.claim-motto{margin-top:14px;padding-top:14px;border-top:1px dashed rgba(255,182,72,.3);}
.claim-motto-head{font-family:'Silkscreen';font-size:.72rem;color:var(--amber);letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px;}
.claim-motto input[type="text"],#motto-text{display:block;width:100%;margin-bottom:8px;background:var(--void);border:1px solid var(--line);border-radius:8px;padding:9px 12px;color:var(--ink);font-family:'Sora';font-size:.85rem;}
.claim-motto input:focus,#motto-text:focus{outline:none;border-color:var(--amber);}
.claim-motto-row{display:flex;gap:8px;}
.claim-motto-row select{background:var(--void);border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:8px;font-family:'Sora';font-size:.8rem;flex:1 1 auto;min-width:0;}
.claim-motto-row .btn{flex:0 0 auto;}
.world-row-reset{color:var(--red) !important;}
.world-row.is-resettable{border-color:rgba(255,107,107,.4);}
.claim-reset{margin-top:14px;padding-top:14px;border-top:1px dashed rgba(255,107,107,.3);}
.claim-reset-head{font-family:'Silkscreen';font-size:.72rem;color:var(--red);letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px;}
@media (max-width:760px){
  .world-stats{grid-template-columns:repeat(2,1fr);}
  .world-help-btn{padding:7px;}
  .adv-stats{grid-template-columns:1fr;}
  .adv-form-row{grid-template-columns:1fr;}
  .adv-spotlight-stats{gap:16px;}
  .spot-modal-stats{grid-template-columns:1fr;}
  .spot-modal-chart{height:260px;}
  .adv-spotlight-card{flex-direction:column;}
  .adv-spotlight-img{width:100%;height:200px;}
  .adv-spotlight-body{padding:16px;}
  .world-help-label{display:none;}
  .world-hero{padding-top:38px;}
  .help-card{padding:22px 18px 18px;max-height:90vh;}
  .help-summary-grid{grid-template-columns:1fr;}
  .world-list{grid-template-columns:1fr;}
  .claim-grid{grid-template-columns:1fr;}
  .world-map{min-height:180px;}
}

/* ============================================================
   BigPad — dark dashboard redesign (2026-09-14).
   Full sidebar-app layout: fixed left rail, top utility bar,
   hero, a preview round card, and a 3-up row (governance /
   leaderboard / launch process). Overriding the shared CSS
   variables at body.bigpad-page scope re-themes the header too
   (it's hidden here — see below — but other shared components
   like buttons key off these vars). No fund-pooling contract is
   live yet, so every number that would come from a real round
   is shown as "—" rather than invented — see bp-featured below.
   ============================================================ */
body.bigpad-page{
  --void:#050505; --panel:#0d0d0d; --panel-hi:#171717;
  --line:rgba(255,255,255,.1); --ink:#ffffff; --ink-dim:#8b8b90;
  --green:#ffffff; --green-dim:#cfcfcf;
  font-family:'Inter',sans-serif;
  background-image:none;
}
body.bigpad-page .brand,
body.bigpad-page nav,
body.bigpad-page .bp-side-logo,
body.bigpad-page h1, body.bigpad-page h2, body.bigpad-page h3, body.bigpad-page h4{
  font-family:'Inter',sans-serif !important;
}
body.bigpad-page header{display:none;} /* this page has its own top bar + sidebar instead */
body.bigpad-page .btn-cute{
  border:none;border-radius:10px;box-shadow:none;background:var(--panel-hi);
  transition:background .15s,transform .1s;
}
body.bigpad-page .btn-cute:hover{transform:none;box-shadow:none;background:#222;}
body.bigpad-page .btn-cute:active{transform:scale(.98);box-shadow:none;}
body.bigpad-page .btn-cute.btn-primary{background:#fff;color:#0a0a0a;}
body.bigpad-page .btn-cute.btn-primary:hover{background:#e2e2e2;}

/* CirclePad (circlepad.html) reuses this entire dashboard layout verbatim —
   same sidebar/topbar/cards/panels, same .bp-* classes — loaded as
   body class="bigpad-page circlepad-page" so it doesn't need a single new
   selector below. The only change is re-tinting the accent from white to
   circle-green so it reads as its own product rather than an unbranded
   BigPad reskin. Two classes on the selector (vs. one on body.bigpad-page
   above) makes this win on specificity regardless of source order. */
body.bigpad-page.circlepad-page{
  --green:#39ff88; --green-dim:#2bc46a;
}

/* ArcPad (arcpad.html) reuses the same dashboard shell, re-tinted to Arc's
   own blue (--blue, already defined at :root) instead of circle-green, so
   the two Arc-chain products read as siblings, not clones of each other. */
body.bigpad-page.arcpad-page{
  --green:#4d9fff; --green-dim:#3a7dd6;
}

/* ---------- ArcPad launch/trade widgets — new components this page needs
   beyond what BigPad/CirclePad's shell already provides ---------- */
.ap-trade-tabs{display:flex;gap:8px;margin-bottom:12px;}
.ap-trade-tab{flex:1;padding:9px;border-radius:9px;border:1px solid var(--line);background:var(--panel-hi);color:var(--ink-dim);font-family:'Sora';font-weight:600;cursor:pointer;transition:all .15s;}
.ap-trade-tab.active{background:var(--green);color:#08150c;border-color:transparent;}
.ap-trade-tab.sell.active{background:var(--red);color:#fff;}
.ap-trade-balance{display:flex;justify-content:space-between;font-size:.78rem;color:var(--ink-dim);margin:2px 0 8px;}
.ap-trade-balance button{background:none;border:none;color:var(--green);cursor:pointer;font-size:.78rem;padding:0;}
.ap-trade-preview{font-size:.78rem;color:var(--ink-dim);margin:8px 0;min-height:1.2em;}
.ap-token-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.ap-token-header img{width:48px;height:48px;border-radius:12px;object-fit:cover;background:var(--panel-hi);}
.ap-token-header .ap-token-name{font-size:1.1rem;font-weight:700;}
.ap-token-header .ap-token-sym{font-family:'Silkscreen';font-size:.85rem;color:var(--ink-dim);}
.ap-stat-row{display:flex;gap:18px;flex-wrap:wrap;margin:10px 0 18px;}
.ap-stat-row div{font-size:.78rem;color:var(--ink-dim);}
.ap-stat-row strong{display:block;color:var(--ink);font-size:1rem;}
.ap-modal-box{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px;max-width:420px;width:92%;margin:8vh auto;max-height:82vh;overflow-y:auto;}
.ap-modal-close{float:right;background:none;border:none;color:var(--ink-dim);font-size:1.3rem;cursor:pointer;line-height:1;}
.ap-launch-fee-note{font-size:.78rem;color:var(--ink-dim);background:var(--panel-hi);border-radius:8px;padding:10px 12px;margin:10px 0;}
.ap-card-trade-btn{width:100%;margin-top:10px;padding:8px;font-size:.8rem;}

/* ---------- App shell: sticky sidebar + fluid content ---------- */
.bp-app{display:flex;align-items:flex-start;width:100%;}
.bp-sidebar{
  width:236px;flex:0 0 236px;position:sticky;top:0;align-self:flex-start;height:100vh;
  overflow-y:auto;display:flex;flex-direction:column;padding:22px 14px 16px;
  border-right:1px solid var(--line);
}
.bp-sidebar::-webkit-scrollbar{width:0;height:0;}
.bp-side-brand{padding:6px 10px 24px;}
.bp-side-logo-row{display:flex;align-items:center;gap:8px;}
.bp-side-mark{width:22px;height:22px;flex-shrink:0;}
.bp-side-logo{font-size:1.2rem;font-weight:800;letter-spacing:-.02em;color:#fff;}
.bp-side-logo span{color:#6c6c72;font-weight:700;}
.bp-side-tag{display:block;font-size:.72rem;color:var(--ink-dim);margin-top:7px;line-height:1.45;}

.bp-side-nav{display:flex;flex-direction:column;gap:2px;}
.bp-nav-item{
  display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:9px;
  border:none;background:none;color:var(--ink-dim);font-size:.85rem;font-weight:600;
  font-family:inherit;cursor:pointer;text-align:left;text-decoration:none;width:100%;
  transition:background .15s,color .15s;
}
.bp-nav-item svg{width:17px;height:17px;flex-shrink:0;opacity:.8;}
.bp-nav-item:hover{background:var(--panel-hi);color:#fff;}
.bp-nav-item.active{background:#fff;color:#0a0a0a;}
.bp-nav-item.active svg{opacity:1;}
.bp-nav-item .bp-nav-ext{margin-left:auto;opacity:.5;width:13px;height:13px;}

.bp-side-section-label{font-size:.64rem;font-weight:700;letter-spacing:.09em;color:#4e4e54;text-transform:uppercase;margin:20px 12px 8px;}

.bp-side-foot{
  margin-top:auto;padding-top:14px;font-size:.7rem;color:var(--ink-dim);line-height:1.55;
  border-top:1px solid var(--line);display:flex;gap:8px;align-items:flex-start;
}
.bp-side-status-dot{width:6px;height:6px;border-radius:50%;background:var(--amber);flex-shrink:0;margin-top:5px;}
.bp-side-status-dot.bp-live{background:var(--green);}

.bp-main{flex:1;min-width:0;}

/* ---------- Top bar ---------- */
.bp-topbar{display:flex;align-items:center;gap:14px;padding:18px 32px;border-bottom:1px solid var(--line);}
.bp-search{flex:0 1 320px;display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 13px;}
.bp-search svg{width:15px;height:15px;flex-shrink:0;color:var(--ink-dim);}
.bp-search input{flex:1;min-width:0;background:none;border:none;outline:none;color:#fff;font:inherit;font-family:inherit;font-size:.83rem;}
.bp-search input::placeholder{color:#5c5c62;}
.bp-topbar-right{display:flex;align-items:center;gap:12px;margin-left:auto;flex-shrink:0;}
.bp-chain-pill{display:flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--line);border-radius:100px;padding:8px 15px;font-size:.79rem;font-weight:600;color:#fff;}
.bp-chain-pill svg{width:14px;height:14px;color:var(--ink-dim);}

/* ---------- Content scroll area ---------- */
.bp-scroll{max-width:1180px;padding:0 32px 70px;}
.bp-panel{display:none;}
.bp-panel.active{display:block;animation:overlayFade .15s ease;}

/* ---------- Hero ---------- */
/* ---------- $BIGPAD token banner ---------- */
.bp-token-banner{
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  background:var(--panel);border:1px solid var(--line);border-radius:16px;
  padding:16px 20px;margin:28px 0 0;
}
.bp-token-label{display:block;font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--green);margin-bottom:7px;}
.bp-token-label-soon{display:inline;margin-bottom:0;color:var(--amber);}
.bp-token-soon-text{font-size:.85rem;color:var(--ink-dim);}

.bp-hero{position:relative;overflow:hidden;border-radius:20px;margin:28px 0 30px;padding:60px 42px;min-height:360px;display:flex;align-items:center;isolation:isolate;}
/* Base hero art (ArcPad / CirclePad, and any page that doesn't opt in):
   the abstract planet-glow placeholder. The dashboard shell is shared by
   three pages, so the artwork variant below is a separate modifier class
   rather than a change to this base rule. The glow picks up each page's
   own accent via --green so ArcPad reads blue and CirclePad reads green. */
.bp-hero-art{
  position:absolute;inset:0;z-index:-1;border:0;padding:0;
  background:
    radial-gradient(ellipse 640px 640px at 80% 62%, color-mix(in srgb, var(--green) 14%, transparent), transparent 60%),
    linear-gradient(180deg,#000 0%,#050505 100%);
}
.bp-hero-art::before{
  content:"";position:absolute;right:4%;top:34%;width:480px;height:480px;border-radius:50%;
  background:
    radial-gradient(circle at 30% 28%, color-mix(in srgb, var(--green) 85%, #fff), color-mix(in srgb, var(--green) 6%, transparent) 42%, transparent 62%),
    radial-gradient(circle at 65% 70%, transparent 55%, rgba(0,0,0,.5) 78%);
  opacity:.5;filter:blur(1px);
}
.bp-hero-art::after{
  content:"";position:absolute;right:-6%;top:52%;width:620px;height:620px;border-radius:50%;
  border:1px solid color-mix(in srgb, var(--green) 22%, transparent);opacity:.6;
}
/* Artwork variant (bigpad.html only): the ArCircle Pad teaser as a real
   image, kept as a <button> so the whole panel is one click target for the
   coming-soon popup, with a dark gradient layered on top (via ::before)
   purely for bp-hero-copy text legibility. */
.bp-hero-art.bp-hero-art-arcircle{
  cursor:pointer;
  background-image:url('images/arcircle-art.jpg');
  background-size:cover;background-position:center;
  display:flex;align-items:flex-end;justify-content:flex-end;
}
.bp-hero-art.bp-hero-art-arcircle::before{
  right:auto;top:auto;width:auto;height:auto;border-radius:0;opacity:1;filter:none;
  inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.55) 32%, rgba(0,0,0,.15) 58%, transparent 78%),
    linear-gradient(0deg, rgba(0,0,0,.35), transparent 40%);
}
.bp-hero-art.bp-hero-art-arcircle::after{display:none;}
.bp-hero-art.bp-hero-art-arcircle:hover::before{background:linear-gradient(90deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.5) 32%, rgba(0,0,0,.12) 58%, transparent 78%),
    linear-gradient(0deg, rgba(0,0,0,.3), transparent 40%);}
.bp-hero-art-badge{
  position:relative;margin:0 22px 20px 0;
  display:inline-flex;align-items:baseline;gap:6px;
  font-family:'Sora';font-size:.78rem;font-weight:700;color:#fff;
  background:rgba(10,12,20,.62);border:1px solid rgba(140,170,255,.4);
  border-radius:100px;padding:8px 16px;
  box-shadow:0 0 18px rgba(90,140,255,.35);
  backdrop-filter:blur(6px);
  transition:box-shadow .15s ease,border-color .15s ease;
}
.bp-hero-art:hover .bp-hero-art-badge{border-color:rgba(160,190,255,.7);box-shadow:0 0 24px rgba(110,160,255,.5);}
.bp-hero-art-badge-soon{font-weight:600;color:#aebbff;}

/* ArCircle Pad popup — the one spot on this black/white BigPad page allowed
   to borrow the teaser image's own blue/purple/green space palette, since
   it's presenting that same artwork; everything else on the page is
   untouched. Reuses the site-wide .modal-overlay shell for the backdrop. */
.bp-arcircle-modal-box{
  position:relative;width:100%;max-width:440px;text-align:center;
  background:radial-gradient(ellipse 420px 260px at 50% -10%, rgba(90,140,255,.22), transparent 60%),
    linear-gradient(160deg,#0a0d1a 0%,#05060c 100%);
  border:1px solid rgba(140,170,255,.35);
  border-radius:22px;
  padding:38px 30px 30px;
  box-shadow:0 0 40px rgba(70,110,255,.18), 0 20px 50px rgba(0,0,0,.5);
  animation:blobPop .22s cubic-bezier(.34,1.56,.64,1);
}
.bp-arcircle-modal-eyebrow{font-family:'Sora';font-size:.66rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#9db3ff;margin-bottom:14px;}
.bp-arcircle-modal-title{
  font-family:'Sora';font-size:1.5rem;font-weight:800;margin:0 0 14px;letter-spacing:-.01em;
  background:linear-gradient(90deg,#8fb8ff 0%,#b79bff 45%,#7de3c0 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.bp-arcircle-modal-body{font-family:'Sora';font-size:.9rem;line-height:1.65;color:#b8bdd6;margin:0 0 22px;}
.bp-arcircle-modal-box .bp-btn-primary{max-width:220px;margin:0 auto;}
.bp-arcircle-modal-box .modal-close{background:rgba(20,22,36,.9);color:#cfd6ff;border-color:rgba(140,170,255,.4);}
.bp-hero-copy{position:relative;max-width:560px;}
.bp-hero-eyebrow{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);border:1px solid var(--line);border-radius:100px;padding:5px 13px;margin-bottom:20px;}
.bp-hero-copy h1{font-size:2.5rem;font-weight:800;line-height:1.14;letter-spacing:-.02em;color:#fff;margin:0 0 18px;text-transform:uppercase;}
.bp-hero-copy h1 span{display:block;}
.bp-hero-copy h1 .bp-hero-big{font-size:1.14em;}
.bp-hero-copy p{font-size:1rem;color:var(--ink-dim);line-height:1.65;margin:0 0 28px;max-width:440px;}
.bp-hero-cta{display:flex;gap:12px;flex-wrap:wrap;}

.bp-btn-primary{background:#fff;color:#0a0a0a;border:none;border-radius:10px;padding:13px 22px;font-size:.87rem;font-weight:700;cursor:pointer;font-family:inherit;transition:transform .1s,background .15s;}
.bp-btn-primary:hover{background:#e2e2e2;}
.bp-btn-primary:active{transform:scale(.98);}
.bp-btn-primary:disabled{background:#242424;color:#67676c;cursor:not-allowed;}
.bp-btn-ghost{background:none;border:1px solid var(--line);color:#fff;border-radius:10px;padding:13px 22px;font-size:.87rem;font-weight:700;cursor:pointer;font-family:inherit;transition:border-color .15s,background .15s;}
.bp-btn-ghost:hover{border-color:#4c4c52;background:var(--panel);}
.bp-btn-block{width:100%;display:block;text-align:center;}

/* ---------- Featured / preview round card ---------- */
.bp-featured{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px 30px;margin-bottom:24px;}
.bp-featured-main{display:grid;grid-template-columns:112px 1fr 300px;gap:26px;margin-bottom:24px;}
.bp-featured-media{
  aspect-ratio:1;border-radius:14px;background:linear-gradient(135deg,#1c1c1c,#0a0a0a);
  border:1px dashed #333;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;
  text-align:center;padding:12px 8px;font-size:.62rem;color:#68686d;line-height:1.35;
}
.bp-featured-mark{width:42px;height:42px;flex-shrink:0;}
.bp-featured-badge{display:inline-block;font-size:.63rem;font-weight:700;letter-spacing:.06em;color:#0a0a0a;background:#fff;padding:4px 11px;border-radius:100px;}
.bp-featured-info h2{font-size:1.5rem;font-weight:800;margin:12px 0 12px;color:#fff;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.bp-ticker{font-size:.86rem;font-weight:600;color:var(--ink-dim);}
.bp-tags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:13px;}
.bp-tags span{font-size:.71rem;font-weight:600;color:var(--ink-dim);background:var(--panel-hi);border:1px solid var(--line);padding:5px 11px;border-radius:100px;}
.bp-featured-info p{font-size:.85rem;color:var(--ink-dim);line-height:1.65;margin:0;max-width:440px;}

.bp-featured-side{background:var(--panel-hi);border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:13px;}
.bp-status-row{display:flex;align-items:center;gap:7px;font-size:.78rem;font-weight:600;color:var(--ink-dim);}
.bp-status-dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0;}
.bp-status-dot.amber{background:var(--amber);}
.bp-progress{height:7px;background:#232323;border-radius:100px;overflow:hidden;}
.bp-progress-fill{height:100%;background:#fff;border-radius:100px;}
.bp-raised-block{display:flex;flex-direction:column;gap:3px;}
.bp-raised-big{font-size:2.15rem;font-weight:800;color:#fff;letter-spacing:-.02em;line-height:1.05;font-variant-numeric:tabular-nums;}
.bp-raised-suffix{font-size:.78rem;color:var(--ink-dim);font-weight:500;}
.bp-raised-suffix strong{color:#fff;font-weight:700;}

.bp-round-countdown{font-size:.78rem;color:var(--ink-dim);text-align:center;font-variant-numeric:tabular-nums;}
.bp-round-countdown strong{color:#fff;}
.bp-balance-row{font-size:.72rem;color:var(--ink-dim);text-align:right;}
.bp-balance-row strong{color:#fff;font-weight:700;}
.bp-contribute-row{display:flex;gap:8px;}
.bp-contribute-input{flex:1;min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:11px 13px;color:#fff;font:inherit;font-size:.86rem;}
.bp-contribute-input::placeholder{color:#5c5c62;}
.bp-contribute-input:focus{outline:none;border-color:#4c4c52;}
.bp-contribute-max{flex-shrink:0;padding:11px 16px;font-size:.8rem;}
.bp-my-position{font-size:.78rem;color:var(--ink-dim);text-align:center;padding-top:2px;}
.bp-my-position strong{color:#fff;}
.bp-featured-badge.bp-live{background:var(--green);}
.bp-status-dot.bp-live{background:var(--green);box-shadow:0 0 6px rgba(255,255,255,.5);}

.bp-lb-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.82rem;}
.bp-lb-row:last-child{border-bottom:none;}
.bp-lb-rank{width:18px;flex-shrink:0;color:var(--ink-dim);font-weight:700;}
.bp-lb-addr{flex:1;min-width:0;color:#fff;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bp-lb-row-detailed{align-items:flex-start;padding:11px 0;}
.bp-lb-row-detailed .bp-lb-rank{margin-top:1px;}
.bp-lb-addr-block{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.bp-lb-addr-block .bp-lb-addr{overflow:visible;white-space:normal;}
.bp-lb-flows{font-size:.68rem;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bp-lb-row-detailed .bp-lb-amount,.bp-lb-row-detailed .bp-lb-pct{margin-top:1px;}
.bp-lb-amount{flex-shrink:0;color:#fff;font-weight:700;}
.bp-lb-pct{flex-shrink:0;width:52px;text-align:right;color:var(--ink-dim);}
.bp-lb-ext{flex-shrink:0;display:inline-flex;align-items:center;color:var(--ink-dim);opacity:.7;transition:opacity .15s,color .15s;padding:6px;margin:-6px;border-radius:6px;}
.bp-lb-ext:hover{opacity:1;color:#fff;background:rgba(255,255,255,.06);}
.bp-lb-ext svg{width:13px;height:13px;}
.bp-lb-mini{display:flex;flex-direction:column;gap:2px;}
.bp-lb-mini .bp-lb-row{padding:6px 0;font-size:.78rem;}
.bp-lb-more{font-size:.74rem;color:var(--ink-dim);text-align:center;padding-top:8px;}

#bp-recent-activity{margin-top:18px;}
#bp-recent-activity h4{font-size:.85rem;font-weight:700;color:#fff;margin:0 0 10px;}
.bp-activity-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.8rem;}
.bp-activity-item:last-child{border-bottom:none;}
.bp-activity-addr{flex:1;min-width:0;color:#fff;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bp-activity-amount{flex-shrink:0;color:#fff;font-weight:700;}
.bp-activity-out .bp-activity-amount{color:var(--red);}
.bp-activity-time{flex-shrink:0;color:var(--ink-dim);font-size:.72rem;width:64px;text-align:right;}

.bp-mini-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;}
.bp-mini-stat{background:var(--panel-hi);border:1px solid var(--line);border-radius:12px;padding:14px 12px;}
.bp-mini-stat svg{width:16px;height:16px;color:var(--ink-dim);margin-bottom:9px;}
.bp-mini-stat span{display:block;font-size:.65rem;color:var(--ink-dim);margin-bottom:4px;}
.bp-mini-stat strong{font-size:.94rem;font-weight:700;color:#fff;}

/* ---------- 3-up row: governance / leaderboard / launch process ---------- */
.bp-row3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:24px;align-items:start;}
.bp-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px 22px;}
.bp-card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.92rem;font-weight:700;color:#fff;margin-bottom:14px;}
.bp-card-link{font-size:.73rem;font-weight:600;color:var(--ink-dim);text-decoration:none;background:none;border:none;font-family:inherit;cursor:pointer;padding:0;flex-shrink:0;}
.bp-card-link:hover{color:#fff;}
.bp-vote-list{display:flex;flex-wrap:wrap;gap:7px;list-style:none;margin:0 0 13px;padding:0;}
.bp-vote-list li{font-size:.75rem;font-weight:600;color:var(--ink);background:var(--panel-hi);border:1px solid var(--line);padding:5px 11px;border-radius:100px;}
.bp-card-note{font-size:.78rem;color:var(--ink-dim);line-height:1.6;margin:0;}
.bp-empty{font-size:.81rem;color:var(--ink-dim);line-height:1.65;text-align:center;padding:24px 8px;border:1px dashed #2a2a2a;border-radius:12px;}

.bp-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:15px;}
.bp-steps li{display:flex;gap:11px;align-items:flex-start;}
.bp-step-n{width:22px;height:22px;border-radius:50%;background:var(--panel-hi);border:1px solid var(--line);color:var(--ink-dim);font-size:.68rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
.bp-steps li > div{flex:1;min-width:0;}
.bp-steps strong{font-size:.81rem;color:#fff;font-weight:700;}
.bp-steps p{font-size:.73rem;color:var(--ink-dim);margin:2px 0 0;line-height:1.5;}
.bp-step-when{font-size:.65rem;color:#5c5c62;font-weight:600;white-space:nowrap;flex-shrink:0;margin-top:3px;}

.bp-nextcard{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px 26px;margin-bottom:8px;}
.bp-nextcard h3{font-size:1rem;font-weight:700;color:#fff;margin:0 0 8px;}
.bp-nextcard p{font-size:.85rem;color:var(--ink-dim);line-height:1.65;margin:0 0 10px;max-width:620px;}

/* ---------- Simple / not-yet-live panels (Projects, My Position, Airdrop, Treasury...) ---------- */
.bp-simple{max-width:640px;padding-top:6px;}
.bp-simple h1{font-size:1.55rem;font-weight:800;color:#fff;margin:0 0 14px;letter-spacing:-.01em;}
.bp-simple p{font-size:.9rem;color:var(--ink-dim);line-height:1.75;margin:0 0 14px;}
.bp-simple .bp-empty{text-align:left;margin-top:8px;}

/* ---------- Docs panel (reuses the pre-redesign copy, restyled) ---------- */
/* ---------- Governance / voting (contracts/BigPadVote.sol) ---------- */
.bp-gov-cat{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:14px;}
.bp-gov-cat-head{margin-bottom:12px;}
.bp-gov-cat-title{font-size:.95rem;font-weight:700;color:#fff;}
.bp-gov-options{display:flex;flex-direction:column;gap:12px;}
.bp-gov-option{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel-hi);}
.bp-gov-option.bp-gov-option-mine{border-color:#fff;}
.bp-gov-option-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px;}
.bp-gov-option-text{font-size:.85rem;font-weight:600;color:#fff;}
.bp-gov-mine-tag{font-size:.63rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#0a0a0a;background:#fff;padding:2px 7px;border-radius:100px;margin-left:6px;}
.bp-gov-option-pct{font-size:.78rem;color:var(--ink-dim);font-weight:600;flex-shrink:0;}
.bp-gov-option-bar{height:6px;background:#232323;border-radius:100px;overflow:hidden;margin-bottom:10px;}
.bp-gov-option-fill{height:100%;background:#fff;border-radius:100px;}
.bp-gov-vote-btn{width:100%;background:none;border:1px solid var(--line);color:var(--ink-dim);font-size:.78rem;font-weight:600;padding:8px;border-radius:8px;cursor:pointer;font-family:inherit;transition:color .15s,border-color .15s;}
.bp-gov-vote-btn:hover:not(:disabled){color:#fff;border-color:#4c4c52;}
.bp-gov-vote-btn:disabled{cursor:default;opacity:.5;}

/* Recipient-only "propose options" form — shown under a not-yet-published
   category instead of the plain "Options not published yet." empty state. */
.bp-gov-propose{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
.bp-gov-propose-input{flex:1;min-width:160px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:9px 11px;color:#fff;font:inherit;font-size:.8rem;}
.bp-gov-propose-input::placeholder{color:#5c5c62;}
.bp-gov-propose-input:focus{outline:none;border-color:#4c4c52;}
.bp-gov-propose-btn{flex-shrink:0;background:#fff;color:#0a0a0a;border:none;font-size:.78rem;font-weight:700;padding:9px 16px;border-radius:8px;cursor:pointer;font-family:inherit;transition:background .15s;}
.bp-gov-propose-btn:hover:not(:disabled){background:#e2e2e2;}
.bp-gov-propose-btn:disabled{cursor:default;opacity:.5;background:#242424;color:#67676c;}
.bp-gov-propose-hint{width:100%;font-size:.68rem;color:var(--ink-dim);margin-top:2px;}

.bp-doc-tabs{display:flex;gap:8px;margin-bottom:28px;flex-wrap:wrap;}
.bp-doc-tab{background:var(--panel);border:1px solid var(--line);color:var(--ink-dim);font-size:.79rem;font-weight:600;padding:8px 16px;border-radius:100px;cursor:pointer;font-family:inherit;}
.bp-doc-tab:hover{color:#fff;}
.bp-doc-tab.active{background:#fff;color:#0a0a0a;border-color:#fff;}
.bp-doc-panel{display:none;max-width:680px;}
.bp-doc-panel.active{display:block;animation:overlayFade .15s ease;}
.bp-doc-panel h1{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;margin-bottom:14px;color:#fff;}
.bp-doc-panel h3{font-size:1rem;font-weight:700;margin:28px 0 8px;color:#fff;}
.bp-doc-panel h3:first-of-type{margin-top:8px;}
.bp-doc-panel p{font-size:.93rem;color:var(--ink-dim);line-height:1.7;margin:0 0 4px;font-weight:400;}
.bp-doc-panel strong{color:#fff;}
.bp-lede{font-size:1.05rem !important;color:var(--ink-dim) !important;margin-bottom:26px !important;font-weight:400;}

.bp-split-bars{display:flex;flex-direction:column;gap:16px;margin:22px 0 26px;}
.bp-split-row{display:flex;align-items:center;gap:12px;font-size:.85rem;}
.bp-split-row span{width:150px;flex-shrink:0;color:var(--ink);font-weight:600;}
.bp-split-track{flex:1;height:8px;background:#1c1c1c;border-radius:100px;overflow:hidden;}
.bp-split-fill{height:100%;background:#fff;border-radius:100px;}
.bp-split-fill.alt{background:var(--blue);}
.bp-split-fill.alt2{background:var(--amber);}
.bp-split-row strong{width:44px;text-align:right;font-size:.82rem;font-weight:700;color:#fff;}
.bp-mech-note{background:var(--panel-hi);border:1px solid var(--line);border-radius:12px;padding:16px 18px;font-size:.83rem !important;}

.bp-faq-item{padding:18px 0;border-bottom:1px solid var(--line);}
.bp-faq-item:last-child{border-bottom:none;}
.bp-faq-item h4{font-size:.92rem;font-weight:700;margin:0 0 6px;color:#fff;}
.bp-faq-item p{margin:0;}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .bp-mini-stats{grid-template-columns:repeat(3,1fr);}
  .bp-featured-main{grid-template-columns:96px 1fr;}
  .bp-featured-side{grid-column:1 / -1;}
}
@media (max-width:900px){
  .bp-app{flex-direction:column;}
  .bp-sidebar{
    width:100%;flex:0 0 auto;position:sticky;top:0;z-index:20;background:var(--void);height:auto;
    flex-direction:column;align-items:stretch;gap:0;padding:0;
    border-right:none;border-bottom:1px solid var(--line);
  }
  .bp-side-brand,.bp-side-foot{display:none;}
  .bp-mobile-menu-trigger{
    display:flex;align-items:center;justify-content:space-between;width:100%;
    background:none;border:none;color:#fff;font-family:inherit;font-size:.92rem;font-weight:700;
    padding:14px 18px;cursor:pointer;
  }
  .bp-mobile-menu-caret{width:15px;height:15px;color:var(--ink-dim);transition:transform .15s;flex-shrink:0;}
  .bp-sidebar.bp-menu-open .bp-mobile-menu-caret{transform:rotate(180deg);}
  .bp-side-section-label{display:none;margin:10px 18px 6px;}
  .bp-side-nav{display:none;flex-direction:column;padding:0 10px;}
  .bp-sidebar.bp-menu-open{border-bottom-color:var(--line);box-shadow:0 12px 24px rgba(0,0,0,.4);}
  .bp-sidebar.bp-menu-open .bp-side-nav{display:flex;}
  .bp-sidebar.bp-menu-open .bp-side-section-label{display:block;}
  .bp-sidebar.bp-menu-open .bp-side-nav:last-of-type{padding-bottom:10px;}
  .bp-nav-item .bp-nav-ext{display:none;}
  .bp-topbar{padding:16px 20px;flex-wrap:wrap;}
  .bp-scroll{padding:0 20px 60px;}
  .bp-hero{padding:40px 26px;min-height:280px;}
  .bp-hero-copy h1{font-size:1.9rem;}
  .bp-hero-art-badge{margin:0 14px 14px 0;font-size:.7rem;padding:7px 13px;}
  .bp-row3{grid-template-columns:1fr;}
}
@media (min-width:901px){
  .bp-mobile-menu-trigger{display:none;}
}
@media (max-width:640px){
  .bp-featured-main{grid-template-columns:1fr;}
  .bp-featured-media{display:none;}
  .bp-mini-stats{grid-template-columns:repeat(2,1fr);}
  .bp-search{flex:1;}
  .bp-chain-pill span{display:none;}
  .bp-split-row span{width:110px;font-size:.78rem;}
}

/* ============================================================
   ARCIRCLE gate — full-screen splash: ArcPad (left) / CirclePad
   (right) / merged ARCIRCLE PAD (center). Same one-per-tab
   sessionStorage dismiss mechanic as the older launch-gate.
   ============================================================ */
:root{
  --arc-blue:#4d9fff;
  --arc-blue-dim:#1c4d8f;
  --circle-green:#39ff88;
  --circle-green-dim:#1c7a45;
}
.arcircle-gate{
  position:fixed;inset:0;z-index:200;overflow:hidden;
  background:
    radial-gradient(1200px 800px at 15% 30%, rgba(77,159,255,.16), transparent 60%),
    radial-gradient(1200px 800px at 85% 65%, rgba(57,255,136,.14), transparent 60%),
    radial-gradient(2200px 1400px at 50% 120%, rgba(180,140,255,.08), transparent 70%),
    #05070a;
  display:flex;flex-direction:column;
}
.arcircle-gate .ag-stars{
  position:absolute;inset:0;pointer-events:none;opacity:.55;
  background-image:
    radial-gradient(1.5px 1.5px at 8% 18%, #fff, transparent),
    radial-gradient(1.5px 1.5px at 22% 62%, #fff, transparent),
    radial-gradient(1px 1px at 35% 12%, #fff, transparent),
    radial-gradient(1.5px 1.5px at 48% 78%, #fff, transparent),
    radial-gradient(1px 1px at 62% 30%, #fff, transparent),
    radial-gradient(1.5px 1.5px at 74% 55%, #fff, transparent),
    radial-gradient(1px 1px at 85% 20%, #fff, transparent),
    radial-gradient(1.5px 1.5px at 91% 70%, #fff, transparent),
    radial-gradient(1px 1px at 12% 85%, #fff, transparent),
    radial-gradient(1px 1px at 58% 92%, #fff, transparent);
  background-size:100% 100%;
}
.arcircle-gate .ag-planet{position:absolute;border-radius:50%;filter:blur(2px);opacity:.9;pointer-events:none;}
.arcircle-gate .ag-planet-arc{
  width:52vw;height:52vw;max-width:640px;max-height:640px;left:-14vw;top:8vh;
  background:radial-gradient(circle at 35% 30%, #a9d4ff 0%, var(--arc-blue) 38%, var(--arc-blue-dim) 68%, #081226 100%);
  box-shadow:0 0 140px rgba(77,159,255,.35);
}
.arcircle-gate .ag-planet-circle{
  width:46vw;height:46vw;max-width:560px;max-height:560px;right:-12vw;bottom:2vh;
  background:radial-gradient(circle at 65% 35%, #baffd9 0%, var(--circle-green) 40%, var(--circle-green-dim) 70%, #05170e 100%);
  box-shadow:0 0 140px rgba(57,255,136,.32);
}
.arcircle-gate .ag-topbar{
  position:relative;z-index:4;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:14px;
  padding:20px 28px;font-family:'Silkscreen',monospace;font-size:.68rem;letter-spacing:1px;
}
.arcircle-gate .ag-topbar .ag-corner{line-height:1.5;justify-self:start;color:rgba(255,255,255,.82);text-shadow:0 2px 10px rgba(0,0,0,.65);}
.arcircle-gate .ag-nav{display:flex;gap:22px;justify-self:end;}
.arcircle-gate .ag-nav a{color:rgba(255,255,255,.92);font-size:.72rem;letter-spacing:1px;text-shadow:0 2px 10px rgba(0,0,0,.65);}
.arcircle-gate .ag-nav a:hover{color:#fff;}
.arcircle-gate .ag-tagline-top{
  justify-self:center;grid-column:2;
  font-family:'Silkscreen',monospace;font-size:.72rem;letter-spacing:2px;color:rgba(255,255,255,.78);text-align:center;
  text-shadow:0 2px 10px rgba(0,0,0,.65);white-space:nowrap;
}
.arcircle-gate .ag-scene{
  position:relative;flex:1;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:0;
  padding:0 4vw 6vh;z-index:2;
}
.ag-hit{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;
  padding:20px;border-radius:20px;transition:background .18s ease, transform .18s ease;}
.ag-hit:hover{background:rgba(255,255,255,.04);transform:translateY(-2px);}
.ag-hit-left{align-items:flex-start;text-align:left;padding-left:4vw;}
.ag-hit-right{align-items:flex-end;text-align:right;padding-right:4vw;}
.ag-logo{font-size:clamp(1.6rem,3.2vw,2.6rem);display:flex;align-items:center;gap:10px;}
.ag-logo-arc{color:#fff;}
.ag-logo-arc .ag-mark{color:var(--arc-blue);}
.ag-logo-circle{color:#fff;}
.ag-logo-circle .ag-mark{color:var(--circle-green);}
.ag-tagline{font-family:'Silkscreen',monospace;font-size:.72rem;letter-spacing:2px;color:rgba(255,255,255,.82);text-shadow:0 2px 10px rgba(0,0,0,.6);}
.ag-hit p{margin:0;color:#fff;font-size:.92rem;max-width:260px;text-shadow:0 2px 12px rgba(0,0,0,.65);}
.ag-hit-foot{font-family:'Silkscreen',monospace;font-size:.62rem;letter-spacing:1.5px;color:rgba(255,255,255,.7);margin-top:6px;text-shadow:0 2px 10px rgba(0,0,0,.6);}
.ag-center{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;padding:0 3vw;z-index:3;}
.ag-emblem{width:min(30vw,220px);height:min(30vw,220px);position:relative;filter:drop-shadow(0 0 30px rgba(120,180,255,.35));}
.ag-emblem svg{width:100%;height:100%;}
.ag-center-title{font-size:clamp(1.3rem,2.6vw,1.9rem);background:linear-gradient(90deg,var(--arc-blue),var(--circle-green));-webkit-background-clip:text;background-clip:text;color:transparent;}
.ag-center-sub{font-family:'Silkscreen',monospace;font-size:.68rem;letter-spacing:2px;color:rgba(255,255,255,.75);text-align:center;text-shadow:0 2px 10px rgba(0,0,0,.6);}
.ag-enter{font-family:'Silkscreen',monospace;font-size:.82rem;letter-spacing:1px;padding:14px 26px;border-radius:999px;
  background:linear-gradient(90deg,var(--arc-blue),var(--circle-green));color:#04140a;border:none;cursor:pointer;white-space:nowrap;}
.ag-enter:hover{filter:brightness(1.08);}
.arcircle-gate .ag-bottom{
  position:relative;z-index:2;text-align:center;padding:0 0 22px;
  font-family:'Silkscreen',monospace;font-size:.66rem;letter-spacing:2px;color:rgba(255,255,255,.6);
  text-shadow:0 2px 10px rgba(0,0,0,.6);
}
@media (max-width:860px){
  .arcircle-gate .ag-scene{grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:28px;padding:0 6vw 4vh;text-align:center;overflow-y:auto;}
  .ag-hit-left,.ag-hit-right{align-items:center;text-align:center;padding-left:0;padding-right:0;}
  .ag-hit-right{order:3;}
  .ag-center{order:2;}
  .arcircle-gate .ag-topbar{grid-template-columns:1fr;justify-items:center;text-align:center;gap:8px;padding:16px 20px 8px;}
  .arcircle-gate .ag-topbar .ag-corner{justify-self:center;}
  .arcircle-gate .ag-nav{justify-self:center;}
  .arcircle-gate .ag-tagline-top{grid-column:1;white-space:normal;}
}
@media (max-height:760px){
  .arcircle-gate{overflow-y:auto;}
  .arcircle-gate .ag-scene{padding-top:2vh;}
}

/* ============================================================
   ARCIRCLE hub — revealed once the splash gate is dismissed.
   ============================================================ */
.ag-emblem-btn{background:none;border:none;padding:0;cursor:pointer;display:block;}
.ah-hero{padding:64px 0 20px;text-align:center;background:
    radial-gradient(900px 400px at 15% 0%, rgba(77,159,255,.10), transparent 60%),
    radial-gradient(900px 400px at 85% 0%, rgba(57,255,136,.09), transparent 60%);}
.ah-hero h1{font-size:clamp(2rem,5vw,3rem);background:linear-gradient(90deg,var(--arc-blue),var(--circle-green));-webkit-background-clip:text;background-clip:text;color:transparent;}
.ah-hero .lede{max-width:640px;margin:0 auto;font-size:1.02rem;}
.ah-cards{padding:20px 0 70px;}
.ah-cards-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.ah-card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:30px;transition:border-color .15s ease, transform .15s ease;}
.ah-card:hover{transform:translateY(-3px);}
.ah-card-arc:hover{border-color:var(--arc-blue);}
.ah-card-circle:hover{border-color:var(--circle-green);}
.ah-card-badge{display:inline-block;font-size:1.3rem;margin-bottom:14px;}
.ah-card-arc .ah-card-badge{color:var(--arc-blue);}
.ah-card-circle .ah-card-badge{color:var(--circle-green);}
.ah-card h2{font-size:1.2rem;}
.ah-card p{margin-bottom:20px;}
.ah-card-cta{pointer-events:none;}
.ah-card-arc .ah-card-cta{background:var(--arc-blue);color:#04101f;}
.ah-card-circle .ah-card-cta{background:var(--circle-green);color:#04140a;}
@media (max-width:720px){
  .ah-cards-grid{grid-template-columns:1fr;}
}
.ah-footer{border-top:1px solid var(--line);padding:24px 0;margin-top:20px;}
.ah-footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
.ah-footer-brand{font-size:.85rem;color:var(--ink-dim);}
.ah-footer-links{display:flex;gap:18px;font-size:.85rem;}
.ah-footer-links a:hover{color:var(--green);}

/* ============================================================
   Explore page redesign — "luxury blue", pump.fun-style card grid.
   Scoped entirely under .explore-luxe (a wrapper div renderExploreFull()
   writes around its own markup) so nothing else on the site is
   affected — the homepage's Explore preview, the profile page and the
   token detail page all use the original green-accent .launch-card
   styles untouched.
   ============================================================ */
.explore-luxe{
  --xl-void:#050b18;
  --xl-panel:#0d1930;
  --xl-panel-hi:#15224a;
  --xl-line:rgba(150,195,255,.16);
  --xl-line-hi:rgba(160,205,255,.38);
  --xl-ink:#eef3ff;
  --xl-ink-dim:#8ea1c9;
  --xl-blue:#4f9dff;
  --xl-blue-soft:#8fc7ff;
  --xl-blue-deep:#1c4fc4;
  --xl-up:#4fe0b0;
  --xl-down:#ff7a8a;
  position:relative;
  background:
    radial-gradient(900px 460px at 18% -12%, rgba(79,157,255,.22), transparent 62%),
    radial-gradient(760px 420px at 105% 6%, rgba(140,190,255,.12), transparent 58%),
    linear-gradient(180deg,#0a1428 0%,#071022 55%,var(--xl-void) 100%);
  border:1px solid var(--xl-line);
  border-radius:26px;
  padding:30px clamp(14px,4vw,38px) 40px;
  box-shadow:0 30px 80px -34px rgba(15,55,140,.55), inset 0 1px 0 rgba(255,255,255,.04);
  overflow:hidden;
}
.explore-luxe::before{
  content:"";position:absolute;top:0;left:10%;right:10%;height:1px;
  background:linear-gradient(90deg,transparent,rgba(170,210,255,.85),transparent);
  pointer-events:none;
}

/* ----- Hero / heading ----- */
.explore-luxe .xl-hero{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:16px;margin-bottom:24px;position:relative;z-index:1;}
.explore-luxe .xl-hero-text{min-width:0;}
.explore-luxe .xl-title{
  font-family:'Sora';font-weight:700;font-size:2.15rem;letter-spacing:-.01em;margin:0 0 6px;
  background:linear-gradient(135deg,#f3f8ff 8%,#a9d0ff 55%,#5ea8ff 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.explore-luxe .xl-sub{margin:0;color:var(--xl-ink-dim);font-size:.92rem;max-width:560px;line-height:1.5;}
.explore-luxe .xl-launch-btn{
  display:inline-flex;align-items:center;gap:8px;flex-shrink:0;
  background:linear-gradient(135deg,var(--xl-blue),var(--xl-blue-deep));
  color:#04101f;font-weight:700;font-family:'Sora';font-size:.9rem;
  padding:12px 20px;border-radius:100px;text-decoration:none;
  box-shadow:0 12px 28px -10px rgba(79,157,255,.55);
  transition:transform .15s ease, box-shadow .15s ease;
}
.explore-luxe .xl-launch-btn:hover{transform:translateY(-1px);box-shadow:0 16px 34px -10px rgba(79,157,255,.7);}
.explore-luxe .xl-launch-icon{font-size:1.1rem;line-height:1;}

/* ----- Toolbar: search + sort ----- */
.explore-luxe .xl-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;position:relative;z-index:1;}
.explore-luxe .xl-search-wrap{position:relative;flex:1 1 300px;min-width:220px;}
.explore-luxe .xl-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--xl-ink-dim);pointer-events:none;}
.explore-luxe .xl-search-input{
  width:100%;background:rgba(255,255,255,.03);border:1px solid var(--xl-line);border-radius:12px;
  padding:11px 14px 11px 38px;color:var(--xl-ink);font-family:'Sora';font-size:.88rem;
}
.explore-luxe .xl-search-input::placeholder{color:var(--xl-ink-dim);}
.explore-luxe .xl-search-input:focus{outline:none;border-color:var(--xl-blue);box-shadow:0 0 0 3px rgba(79,157,255,.16);}
.explore-luxe .xl-sort-select{
  flex:0 0 auto;background:rgba(255,255,255,.03);border:1px solid var(--xl-line);border-radius:12px;
  padding:11px 14px;color:var(--xl-ink);font-family:'Sora';font-size:.85rem;cursor:pointer;
}
.explore-luxe .xl-sort-select:focus{outline:none;border-color:var(--xl-blue);}

/* ----- Filter chip row (reuses the shared .filter-chip class so the
   existing click handler in app.js keeps working unmodified) ----- */
.explore-luxe .xl-filter-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px;position:relative;z-index:1;}
.explore-luxe .filter-chip{
  font-family:'Sora';font-weight:600;font-size:.76rem;padding:7px 14px;border-radius:999px;
  border:1px solid var(--xl-line);color:var(--xl-ink-dim);cursor:pointer;transition:all .15s ease;white-space:nowrap;
}
.explore-luxe .filter-chip:hover{border-color:var(--xl-blue-soft);color:var(--xl-blue-soft);}
.explore-luxe .filter-chip.active{
  background:linear-gradient(135deg,var(--xl-blue),var(--xl-blue-deep));
  border-color:transparent;color:#04101f;
}

/* ----- Card grid ----- */
.explore-luxe .xl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:18px;position:relative;z-index:1;}

.explore-luxe .xl-card{
  display:flex;flex-direction:column;background:var(--xl-panel);border:1px solid var(--xl-line);
  border-radius:18px;overflow:hidden;text-decoration:none;color:var(--xl-ink);min-width:0;
  transition:border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.explore-luxe .xl-card:hover{
  border-color:var(--xl-line-hi);transform:translateY(-3px);
  box-shadow:0 20px 40px -20px rgba(79,157,255,.45);
}
.explore-luxe .xl-card-media{position:relative;aspect-ratio:1/1;background:var(--xl-panel-hi);}
.explore-luxe .xl-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2.4rem;}
.explore-luxe .xl-card-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.explore-luxe .xl-badges-tl{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;gap:5px;align-items:flex-start;}
.explore-luxe .xl-badges-tr{position:absolute;top:10px;right:10px;}
.explore-luxe .xl-badge{
  font-family:'Sora';font-weight:700;font-size:.6rem;letter-spacing:.03em;text-transform:uppercase;
  padding:3px 9px;border-radius:999px;backdrop-filter:blur(6px);
}
.explore-luxe .xl-badge-new{color:#04101f;background:var(--xl-blue-soft);}
.explore-luxe .xl-badge-grad{color:#04101f;background:#e4d38a;}
.explore-luxe .xl-badge-chg{text-transform:none;letter-spacing:0;}
.explore-luxe .xl-badge-chg.up{color:var(--xl-up);background:rgba(79,224,176,.15);border:1px solid rgba(79,224,176,.4);}
.explore-luxe .xl-badge-chg.down{color:var(--xl-down);background:rgba(255,122,138,.15);border:1px solid rgba(255,122,138,.4);}

.explore-luxe .xl-card-body{padding:14px;display:flex;flex-direction:column;gap:3px;min-width:0;}
.explore-luxe .xl-card-name{font-family:'Sora';font-weight:700;font-size:.94rem;color:var(--xl-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.explore-luxe .xl-card-sym{font-family:'Sora';font-weight:500;font-size:.78rem;color:var(--xl-blue-soft);margin-bottom:4px;}
.explore-luxe .xl-mcap-row{display:flex;align-items:baseline;gap:6px;margin:2px 0 8px;}
.explore-luxe .xl-mcap-value{font-family:'Sora';font-weight:700;font-size:1.02rem;color:var(--xl-ink);}
.explore-luxe .xl-mcap-label{font-size:.66rem;color:var(--xl-ink-dim);text-transform:uppercase;letter-spacing:.03em;}

.explore-luxe .xl-progress{height:5px;border-radius:99px;background:var(--xl-panel-hi);overflow:hidden;margin-bottom:6px;}
.explore-luxe .xl-progress-fill{height:100%;background:linear-gradient(90deg,var(--xl-blue-deep),var(--xl-blue));}
.explore-luxe .xl-progress-label{display:flex;justify-content:space-between;font-size:.64rem;color:var(--xl-ink-dim);margin-bottom:8px;}

.explore-luxe .xl-byline{display:flex;align-items:center;gap:6px;font-size:.72rem;color:var(--xl-ink-dim);margin-bottom:10px;min-width:0;}
.explore-luxe .xl-creator{font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.explore-luxe .xl-dot{opacity:.6;}
.explore-luxe .xl-age{white-space:nowrap;flex-shrink:0;}

.explore-luxe .xl-footer-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;}
.explore-luxe .xl-type-pill{
  font-family:'Sora';font-weight:600;font-size:.64rem;padding:3px 9px;border-radius:999px;
  border:1px solid var(--xl-line);color:var(--xl-ink-dim);white-space:nowrap;
}
.explore-luxe .xl-type-curve{color:var(--xl-blue-soft);border-color:rgba(79,157,255,.4);background:rgba(79,157,255,.08);}
.explore-luxe .xl-type-instant{color:var(--xl-up);border-color:rgba(79,224,176,.4);background:rgba(79,224,176,.08);}
.explore-luxe .xl-type-hybrid{color:#c7b8ff;border-color:rgba(180,140,255,.4);background:rgba(180,140,255,.08);}
.explore-luxe .xl-type-paired{color:var(--xl-blue-soft);border-color:rgba(79,157,255,.4);background:rgba(79,157,255,.08);}
.explore-luxe .xl-socials{display:flex;gap:9px;align-items:center;flex-shrink:0;}
.explore-luxe .xl-socials span{color:var(--xl-ink-dim);cursor:pointer;display:inline-flex;transition:color .15s ease;}
.explore-luxe .xl-socials span:hover{color:var(--xl-blue-soft);}
.explore-luxe .xl-socials svg{width:15px;height:15px;}

/* ----- Loading skeleton ----- */
.explore-luxe .xl-skel-thumb{width:100%;height:100%;border-radius:0;}
.explore-luxe .xl-skeleton-card .xl-card-body{gap:8px;}
.explore-luxe .sk{background:linear-gradient(90deg,var(--xl-panel-hi) 25%,rgba(255,255,255,.06) 50%,var(--xl-panel-hi) 75%);background-size:200% 100%;animation:sk-shimmer 1.4s ease-in-out infinite;border-radius:8px;}

.explore-luxe .empty-state{color:var(--xl-ink-dim);}

@media (max-width:640px){
  .explore-luxe{padding:20px 14px 28px;border-radius:20px;}
  .explore-luxe .xl-title{font-size:1.6rem;}
  .explore-luxe .xl-sub{font-size:.8rem;}
  .explore-luxe .xl-launch-btn{padding:10px 16px;font-size:.82rem;}
  .explore-luxe .xl-toolbar{flex-direction:column;align-items:stretch;}
  .explore-luxe .xl-search-wrap{flex:none;width:100%;}
  .explore-luxe .xl-sort-select{width:100%;}
  .explore-luxe .xl-grid{grid-template-columns:repeat(2,1fr);gap:10px;}
  .explore-luxe .xl-card{border-radius:14px;}
  .explore-luxe .xl-card-body{padding:9px;gap:2px;}
  .explore-luxe .xl-card-name{font-size:.8rem;}
  .explore-luxe .xl-card-sym{font-size:.68rem;margin-bottom:2px;}
  .explore-luxe .xl-mcap-value{font-size:.86rem;}
  .explore-luxe .xl-mcap-label{font-size:.58rem;}
  .explore-luxe .xl-byline{font-size:.62rem;margin-bottom:6px;}
  .explore-luxe .xl-type-pill{font-size:.56rem;padding:2px 7px;}
  .explore-luxe .xl-socials{gap:7px;}
  .explore-luxe .xl-socials svg{width:13px;height:13px;}
  .explore-luxe .xl-badge{font-size:.52rem;padding:2px 7px;}
  .explore-luxe .xl-badges-tl{top:7px;left:7px;}
  .explore-luxe .xl-badges-tr{top:7px;right:7px;}
}


/* ============================================================
   ARCIRCLE audit pass — gate artwork backdrop, hub header CTA,
   ArcPad/CirclePad "Contracts" table, launch-form hint sizing,
   empty-carousel collapse. All additive; scoped to the Arc pages.
   ============================================================ */
/* The generated ARCIRCLE artwork (images/arcircle-art.jpg) as an ambient
   backdrop behind the gate: blurred + darkened so its baked-in text and
   logos dissolve into colour and light (the crisp, responsive HTML layer
   on top carries the real copy), scaled slightly so blur never shows a
   hard edge. Works at every aspect ratio because nothing depends on
   where the artwork's own elements land. */
.arcircle-gate .ag-art{
  position:absolute;inset:-4%;pointer-events:none;
  background:url('images/arcircle-art.jpg') center/cover no-repeat;
  filter:blur(14px) brightness(.62) saturate(1.15);
  transform:scale(1.06);
}
.arcircle-gate .ag-art::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(60% 55% at 50% 45%, rgba(5,7,10,.18), rgba(5,7,10,.62) 100%),
    linear-gradient(180deg, rgba(5,7,10,.55) 0%, rgba(5,7,10,.15) 30%, rgba(5,7,10,.15) 70%, rgba(5,7,10,.7) 100%);
}
/* With real artwork underneath, the flat CSS planets read as stickers —
   keep them only as soft colour halos. */
.arcircle-gate .ag-planet{opacity:.32;filter:blur(38px);}
.arcircle-gate .ag-stars{opacity:.8;}
.ag-emblem{filter:drop-shadow(0 0 30px rgba(120,180,255,.45)) drop-shadow(0 0 60px rgba(57,255,136,.18));}
.ag-enter{box-shadow:0 0 0 1px rgba(255,255,255,.08), 0 10px 30px rgba(57,255,136,.18), 0 0 40px rgba(77,159,255,.22);}
.ag-hit:hover{background:rgba(255,255,255,.06);backdrop-filter:blur(2px);}
@media (max-width:860px){
  .arcircle-gate .ag-topbar .ag-corner{display:none;}
  .arcircle-gate .ag-bottom{padding:12px 16px 26px;}
  .arcircle-gate .ag-scene{padding-bottom:6vh;}
}

/* Hub header: a real CTA where the (scriptless) wallet slot used to sit. */
.ah-head-cta{margin-left:auto;white-space:nowrap;}
@media (max-width:640px){ .ah-head-cta{display:none;} }

/* Docs → Contracts table (ArcPad + CirclePad), rendered by
   renderContractRows() in arc-shared.js. */
.ac-contracts{display:flex;flex-direction:column;gap:10px;margin-top:14px;}
.ac-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;}
.ac-row-main{min-width:0;flex:1 1 260px;}
.ac-label{font-weight:700;color:var(--ink);font-size:.92rem;}
.ac-role{font-size:.78rem;color:var(--ink-dim);margin-top:3px;line-height:1.45;}
.ac-addr{display:flex;align-items:center;gap:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;}
.ac-addr .mono-link{color:var(--green);text-decoration:none;word-break:break-all;max-width:none;overflow:visible;text-overflow:clip;white-space:normal;display:inline;}
.ac-addr .mono-link:hover{text-decoration:underline;}
.ac-addr-short{display:none;}
.ac-addr-pending{color:var(--amber);font-family:'Sora';font-size:.78rem;font-style:italic;}
.ac-copy{background:var(--panel-hi);border:1px solid var(--line);color:var(--ink-dim);border-radius:7px;padding:5px 10px;font-family:'Sora';font-size:.72rem;font-weight:600;cursor:pointer;}
.ac-copy:hover{color:var(--ink);border-color:var(--green);}
.ac-foot{font-size:.74rem;color:var(--ink-dim);padding:6px 2px 0;line-height:1.6;}
.ac-foot code{font-size:.72rem;background:var(--panel-hi);padding:1px 6px;border-radius:5px;}
.ac-foot .mono-link{color:var(--green);text-decoration:none;}
@media (max-width:640px){
  .ac-addr-full{display:none;}
  .ac-addr-short{display:inline;}
}

/* ArcPad launch form: .hint/.optional were only ever styled under the
   Robinhood launch page's .field wrapper, so here they inherited the
   label's size and colour. Keep the label header ("Logo optional") on one
   line and the inputs on the next. */
body.arcpad-page .adv-launch-form label{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 8px;}
body.arcpad-page .adv-launch-form label > input,
body.arcpad-page .adv-launch-form label > .cn-input-suffix-wrap{flex:1 0 100%;margin-top:2px;}
body.arcpad-page .adv-launch-form label > input[type="range"]{margin-top:8px;}
body.arcpad-page .adv-launch-form .optional{font-size:.7rem;font-weight:400;color:var(--ink-dim);}
body.arcpad-page .adv-launch-form .hint{font-size:.76rem;color:var(--ink-dim);line-height:1.5;margin:-4px 0 0;font-weight:400;}
body.arcpad-page .adv-launch-form .hint:empty{display:none;}
body.arcpad-page .adv-launch-form .logo-row .hint{margin-top:6px;}
body.arcpad-page .adv-launch-form .file-btn{margin-top:8px;}
body.arcpad-page .adv-launch-form .btn-primary{margin-top:6px;}

/* Empty / errored carousel shouldn't reserve a 300px hole. */
.carousel-viewport.is-empty{min-height:0;cursor:default;}
.carousel-viewport.is-empty .carousel-track{width:100%;}
.carousel-viewport.is-empty .empty-state{width:100%;}
.bp-side-status-dot.bp-bad{background:var(--red);box-shadow:0 0 8px var(--red);}
/* Docs/Explore/Launch panels start flush under the sticky topbar; give
   every non-home panel the same breathing room the hero already has. */
.bp-panel:not(#bp-panel-home) > h1:first-child,
.bp-panel:not(#bp-panel-home) > .bp-doc-tabs:first-child,
.bp-panel:not(#bp-panel-home) > .bp-simple:first-child{margin-top:26px;}
#ap-home-stats{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:12px 36px;}
@media (max-width:640px){
  #ap-home-stats{grid-template-columns:repeat(3,1fr);gap:10px;}
  #ap-home-stats div{font-size:.7rem;}
  #ap-home-stats strong{font-size:.95rem;}
}

/* ============================================================
   ARCIRCLE hub v2 — clean single-screen landing (index.html) and
   the $ARCIRCLE token page (arcircle.html), sharing one floating
   bottom dock: Arc / Circle / Reward / $ARCIRCLE. Everything is
   scoped under body.ax-page so the ArcPad / CirclePad shells and
   the legacy HOMEPAD pages are untouched.
   ============================================================ */
body.ax-page,body.ax-dock-host{
  --ax-bg:#04060a;
  --ax-ink:#eef3f7;
  --ax-dim:rgba(222,233,244,.64);
  --ax-faint:rgba(222,233,244,.42);
  --ax-line:rgba(255,255,255,.09);
  --ax-glass:rgba(13,17,25,.62);
  --ax-blue:#4d9fff;
  --ax-cyan:#35d8d0;
  --ax-green:#39ff88;
  --ax-gold:#ffc861;
  --ax-grad:linear-gradient(90deg,#3f9bff 0%,#35d8d0 50%,#39ff88 100%);
}
body.ax-page{
  background:var(--ax-bg);background-image:none;color:var(--ax-ink);
  min-height:100vh;min-height:100svh;overflow-x:hidden;
}
.ax-page h1,.ax-page h2,.ax-page h3{font-family:'Sora',sans-serif;color:var(--ax-ink);letter-spacing:-.02em;}
.ax-page p{color:var(--ax-dim);}
.ax-page .pixel{font-family:'Silkscreen',monospace;letter-spacing:.12em;}

/* ---- Ambient background (fixed, behind everything) ---- */
.ax-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.ax-bg-art{position:absolute;inset:-6%;background:url('images/arcircle-art.jpg') center/cover no-repeat;
  filter:blur(22px) brightness(.42) saturate(1.2);transform:scale(1.08);}
.ax-bg-glow{position:absolute;inset:0;background:
  radial-gradient(52% 48% at 18% 38%, rgba(63,155,255,.22), transparent 70%),
  radial-gradient(52% 48% at 82% 62%, rgba(57,255,136,.16), transparent 70%),
  radial-gradient(80% 60% at 50% 110%, rgba(4,6,10,.95), transparent 70%),
  linear-gradient(180deg, rgba(4,6,10,.55), rgba(4,6,10,.25) 35%, rgba(4,6,10,.6) 100%);}
.ax-stars{position:absolute;inset:0;opacity:.7;background-image:
  radial-gradient(1.4px 1.4px at 7% 16%, #fff, transparent),radial-gradient(1px 1px at 19% 71%, #fff, transparent),
  radial-gradient(1.2px 1.2px at 33% 9%, #fff, transparent),radial-gradient(1px 1px at 44% 84%, #fff, transparent),
  radial-gradient(1.4px 1.4px at 58% 22%, #fff, transparent),radial-gradient(1px 1px at 69% 58%, #fff, transparent),
  radial-gradient(1.2px 1.2px at 81% 13%, #fff, transparent),radial-gradient(1.4px 1.4px at 92% 77%, #fff, transparent),
  radial-gradient(1px 1px at 27% 43%, #fff, transparent),radial-gradient(1px 1px at 88% 41%, #fff, transparent);}

/* ---- Top bar ---- */
.ax-page header.ax-top{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:18px clamp(16px,4vw,40px);background:linear-gradient(180deg,rgba(4,6,10,.72),rgba(4,6,10,0));
  border:none;backdrop-filter:none;-webkit-backdrop-filter:none;}
.ax-brand{display:flex;align-items:center;gap:10px;font-family:'Silkscreen',monospace;font-size:.95rem;letter-spacing:.08em;color:#fff;}
.ax-brand img{width:38px;height:auto;filter:drop-shadow(0 0 10px rgba(63,155,255,.45));}
.ax-brand em{font-style:normal;color:var(--ax-faint);}
.ax-top-cta{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;font-size:.82rem;font-weight:600;color:#fff;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.14);transition:border-color .18s ease,background .18s ease;}
.ax-top-cta:hover{border-color:rgba(57,255,136,.6);background:rgba(57,255,136,.08);}
.ax-top-cta .ax-dot{width:7px;height:7px;border-radius:50%;background:var(--ax-green);box-shadow:0 0 10px var(--ax-green);}

/* ---- Home hero (single screen) ---- */
.ax-hero{position:relative;z-index:1;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:96px 20px 150px;}
.ax-eyebrow{display:inline-block;font-family:'Silkscreen',monospace;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ax-dim);
  padding:7px 14px;border:1px solid var(--ax-line);border-radius:999px;background:rgba(255,255,255,.03);}
.ax-mark{display:block;width:clamp(240px,34vw,440px);margin:26px auto 6px;}
.ax-mark img{width:100%;height:auto;filter:drop-shadow(0 0 40px rgba(63,155,255,.28)) drop-shadow(0 0 70px rgba(57,255,136,.14));
  animation:ax-float 7s ease-in-out infinite;}
@keyframes ax-float{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
.ax-title{font-size:clamp(2.5rem,6.4vw,4.6rem);font-weight:800;line-height:1.02;margin:0 0 16px;
  background:var(--ax-grad);-webkit-background-clip:text;background-clip:text;color:transparent !important;}
.ax-sub{font-size:clamp(1rem,1.6vw,1.16rem);line-height:1.6;max-width:520px;margin:0 auto;}

/* ---- Floating dock ---- */
:is(.ax-page,.ax-dock-host) nav.ax-dock{position:fixed;z-index:40;left:50%;bottom:max(22px,calc(env(safe-area-inset-bottom) + 12px));transform:translateX(-50%);
  display:flex;gap:6px;padding:8px;border-radius:24px;font-size:inherit;color:inherit;
  background:var(--ax-glass);border:1px solid rgba(255,255,255,.1);
  backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);
  box-shadow:0 24px 60px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.07);}
/* The site-wide mobile header <nav> is a full-bleed scrolling tab row
   (width:calc(100% + 32px), negative margins, auto margins on the first/last
   link) — none of that should reach the dock, which is also a <nav>. */
:is(.ax-page,.ax-dock-host) nav.ax-dock{width:auto;margin:0;overflow:visible;order:0;flex-wrap:nowrap;flex-shrink:0;min-width:0;justify-content:flex-start;}
:is(.ax-page,.ax-dock-host) .ax-dock > .ax-dock-item{margin:0;flex:0 0 auto;}
.ax-dock-item{--acc:#fff;position:relative;display:flex;align-items:center;gap:11px;padding:9px 16px 9px 9px;border-radius:17px;
  background:none;border:none;color:var(--ax-ink);font:inherit;cursor:pointer;text-align:left;white-space:nowrap;
  transition:background .18s ease,transform .18s ease;}
.ax-dock-item[data-accent="arc"]{--acc:var(--ax-blue);}
.ax-dock-item[data-accent="circle"]{--acc:var(--ax-green);}
.ax-dock-item[data-accent="reward"]{--acc:var(--ax-gold);}
.ax-dock-item[data-accent="token"]{--acc:var(--ax-cyan);}
.ax-dock-item:hover{background:rgba(255,255,255,.06);transform:translateY(-2px);}
:is(.ax-page,.ax-dock-host) .ax-dock a:hover{color:var(--ax-ink);}
.ax-dock-item[aria-current="page"]{background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);}
.ax-dock-ico{width:40px;height:40px;flex-shrink:0;display:grid;place-items:center;border-radius:12px;color:var(--acc);
  background:color-mix(in srgb,var(--acc) 12%,transparent);border:1px solid color-mix(in srgb,var(--acc) 30%,transparent);
  transition:box-shadow .18s ease;}
.ax-dock-item:hover .ax-dock-ico,.ax-dock-item[aria-current="page"] .ax-dock-ico{box-shadow:0 0 18px color-mix(in srgb,var(--acc) 45%,transparent);}
.ax-dock-ico svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.ax-dock-ico img{width:30px;height:auto;}
.ax-dock-item[data-accent="token"] .ax-dock-ico{background:linear-gradient(135deg,rgba(63,155,255,.16),rgba(57,255,136,.14));border-color:rgba(53,216,208,.35);}
.ax-dock-txt{display:flex;flex-direction:column;line-height:1.15;}
.ax-dock-txt strong{font-size:.92rem;font-weight:700;letter-spacing:-.01em;}
.ax-dock-txt small{font-family:'Silkscreen',monospace;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ax-faint);margin-top:3px;}
.ax-dock-item[data-accent="reward"] .ax-dock-txt small{color:var(--ax-gold);}
.ax-dock-sep{width:1px;align-self:stretch;margin:8px 2px;background:rgba(255,255,255,.08);}

/* ---- Reward modal ---- */
.ax-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;}
.ax-modal[hidden]{display:none;}
.ax-modal-backdrop{position:absolute;inset:0;background:rgba(2,4,8,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  animation:ax-fade .2s ease;}
.ax-modal-card{position:relative;width:min(560px,100%);max-height:calc(100svh - 40px);overflow-y:auto;border-radius:24px;padding:30px 28px 24px;
  background:linear-gradient(180deg,rgba(24,22,14,.96),rgba(12,14,20,.97) 40%);border:1px solid rgba(255,200,97,.22);
  box-shadow:0 40px 100px rgba(0,0,0,.6),0 0 80px rgba(255,200,97,.08);animation:ax-rise .26s cubic-bezier(.2,.8,.2,1);}
@keyframes ax-fade{from{opacity:0;}to{opacity:1;}}
@keyframes ax-rise{from{opacity:0;transform:translateY(14px) scale(.98);}to{opacity:1;transform:none;}}
.ax-modal-x{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:10px;border:1px solid var(--ax-line);background:rgba(255,255,255,.04);
  color:var(--ax-dim);font-size:1.2rem;line-height:1;cursor:pointer;}
.ax-modal-x:hover{color:#fff;border-color:rgba(255,255,255,.25);}
.ax-badge{display:inline-flex;align-items:center;gap:7px;font-family:'Silkscreen',monospace;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;
  padding:6px 11px;border-radius:999px;color:var(--ax-gold);background:rgba(255,200,97,.1);border:1px solid rgba(255,200,97,.3);}
.ax-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor;}
.ax-modal-card h2{font-size:1.55rem;font-weight:700;margin:14px 0 8px;}
.ax-modal-lede{font-size:.94rem;line-height:1.6;margin:0 0 20px;}
.ax-reward-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px;}
.ax-reward-card{padding:16px;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid var(--ax-line);}
.ax-reward-card .ax-rc-ico{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;margin-bottom:12px;color:var(--ax-gold);
  background:rgba(255,200,97,.1);border:1px solid rgba(255,200,97,.25);}
.ax-reward-card .ax-rc-ico svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.ax-reward-card h3{font-size:.98rem;font-weight:700;margin:0 0 6px;}
.ax-reward-card p{font-size:.84rem;line-height:1.55;margin:0;}
.ax-next{padding:16px 18px;border-radius:16px;background:rgba(255,200,97,.05);border:1px dashed rgba(255,200,97,.28);margin-bottom:20px;}
.ax-next-title{font-family:'Silkscreen',monospace;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ax-gold);margin-bottom:10px;}
.ax-next ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;}
.ax-next li{position:relative;padding-left:20px;font-size:.87rem;color:var(--ax-ink);line-height:1.5;}
.ax-next li::before{content:"";position:absolute;left:2px;top:.55em;width:8px;height:8px;border-radius:3px;border:1.5px solid var(--ax-gold);}
.ax-modal-actions{display:flex;gap:10px;flex-wrap:wrap;}
.ax-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:13px;font-family:'Sora',sans-serif;
  font-size:.9rem;font-weight:700;cursor:pointer;border:1px solid transparent;transition:filter .18s ease,background .18s ease,border-color .18s ease,transform .18s ease;}
.ax-btn:hover{transform:translateY(-1px);}
.ax-btn-grad{background:var(--ax-grad);color:#03110a;box-shadow:0 10px 30px rgba(53,216,208,.22);}
.ax-btn-grad:hover{filter:brightness(1.08);}
.ax-btn-ghost{background:rgba(255,255,255,.04);color:var(--ax-ink);border-color:rgba(255,255,255,.14);}
.ax-btn-ghost:hover{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.07);}
body.ax-modal-open{overflow:hidden;}

/* ---- $ARCIRCLE token page ---- */
.ax-main{position:relative;z-index:1;padding:110px 0 170px;}
.ax-wrap{max-width:1120px;margin:0 auto;padding:0 clamp(16px,4vw,32px);}
.ax-token-hero{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,5vw,64px);align-items:center;margin-bottom:34px;}
.ax-token-hero h1{font-size:clamp(2.8rem,7vw,5rem);font-weight:800;line-height:1;margin:18px 0 18px;}
.ax-token-hero h1 span{background:var(--ax-grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.ax-lede{font-size:clamp(1rem,1.5vw,1.14rem);line-height:1.65;max-width:560px;margin:0 0 24px;}
.ax-ca{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 10px 10px 16px;border-radius:14px;max-width:560px;
  background:rgba(255,255,255,.04);border:1px solid var(--ax-line);margin-bottom:18px;}
.ax-ca-label{font-family:'Silkscreen',monospace;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ax-faint);}
.ax-ca code{flex:1 1 260px;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.84rem;color:var(--ax-ink);
  word-break:break-all;background:none;}
.ax-copy{flex-shrink:0;padding:8px 13px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);
  color:var(--ax-ink);font-family:'Sora',sans-serif;font-size:.78rem;font-weight:600;cursor:pointer;}
.ax-copy:hover{border-color:rgba(57,255,136,.5);}
.ax-copy.is-done{color:var(--ax-green);border-color:rgba(57,255,136,.5);}
.ax-actions{display:flex;gap:10px;flex-wrap:wrap;}
.ax-coin{position:relative;aspect-ratio:1;width:min(100%,400px);justify-self:center;display:grid;place-items:center;border-radius:50%;
  background:radial-gradient(circle at 50% 45%,rgba(53,216,208,.14),rgba(4,6,10,0) 62%);}
.ax-coin::before{content:"";position:absolute;inset:6%;border-radius:50%;border:1px solid rgba(255,255,255,.08);
  box-shadow:inset 0 0 60px rgba(63,155,255,.1),0 0 80px rgba(57,255,136,.06);}
.ax-coin::after{content:"";position:absolute;inset:0;border-radius:50%;border:1px dashed rgba(255,255,255,.07);animation:ax-spin 60s linear infinite;}
@keyframes ax-spin{to{transform:rotate(360deg);}}
.ax-coin picture{width:78%;position:relative;z-index:1;}
.ax-coin img{width:100%;height:auto;filter:drop-shadow(0 0 36px rgba(63,155,255,.3)) drop-shadow(0 0 60px rgba(57,255,136,.14));animation:ax-float 7s ease-in-out infinite;}

.ax-facts{display:grid;grid-template-columns:repeat(4,1fr);border-radius:18px;overflow:hidden;border:1px solid var(--ax-line);
  background:rgba(255,255,255,.025);margin-bottom:84px;}
.ax-fact{padding:18px 20px;border-left:1px solid var(--ax-line);}
.ax-fact:first-child{border-left:none;}
.ax-fact span{display:block;font-family:'Silkscreen',monospace;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ax-faint);margin-bottom:6px;}
.ax-fact strong{font-size:1.08rem;font-weight:700;letter-spacing:-.01em;}

.ax-section{margin-bottom:88px;}
.ax-kicker{font-family:'Silkscreen',monospace;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ax-cyan);margin-bottom:12px;}
.ax-section > h2{font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:700;line-height:1.15;margin:0 0 12px;max-width:720px;}
.ax-section > .ax-section-lede{font-size:1rem;line-height:1.65;max-width:640px;margin:0 0 30px;}
.ax-cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.ax-card{padding:24px;border-radius:20px;background:rgba(255,255,255,.03);border:1px solid var(--ax-line);}
.ax-card-ico{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;margin-bottom:16px;color:var(--acc,#fff);
  background:color-mix(in srgb,var(--acc,#fff) 11%,transparent);border:1px solid color-mix(in srgb,var(--acc,#fff) 28%,transparent);}
.ax-card-ico svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.ax-card h3{font-size:1.08rem;font-weight:700;margin:0 0 8px;}
.ax-card p{font-size:.9rem;line-height:1.6;margin:0;}

/* Flywheel */
.ax-fly{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(24px,5vw,60px);align-items:center;}
.ax-fly-svg{width:100%;max-width:470px;justify-self:center;display:block;overflow:visible;}
.ax-fly-svg .ax-ring-dash{animation:ax-dash 9s linear infinite;}
@keyframes ax-dash{to{stroke-dashoffset:-320;}}
.ax-fly-svg text{font-family:'Sora',sans-serif;}
.ax-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.ax-step{display:grid;grid-template-columns:42px 1fr;gap:14px;padding:16px 18px;border-radius:18px;background:rgba(255,255,255,.03);border:1px solid var(--ax-line);}
.ax-step-n{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-weight:800;font-size:1rem;color:var(--acc);
  background:color-mix(in srgb,var(--acc) 12%,transparent);border:1px solid color-mix(in srgb,var(--acc) 32%,transparent);}
.ax-step h3{font-size:1rem;font-weight:700;margin:2px 0 4px;}
.ax-step p{font-size:.88rem;line-height:1.55;margin:0;}

/* Revenue sources */
.ax-rev{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:14px;align-items:start;}
.ax-rev-list{border-radius:20px;border:1px solid var(--ax-line);background:rgba(255,255,255,.025);overflow:hidden;}
.ax-rev-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:16px 20px;border-top:1px solid var(--ax-line);}
.ax-rev-row:first-child{border-top:none;}
.ax-tag{font-family:'Silkscreen',monospace;font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;padding:5px 8px;border-radius:8px;white-space:nowrap;
  color:var(--acc);background:color-mix(in srgb,var(--acc) 11%,transparent);border:1px solid color-mix(in srgb,var(--acc) 28%,transparent);}
.ax-rev-name strong{display:block;font-size:.95rem;font-weight:700;}
.ax-rev-name small{display:block;font-size:.8rem;color:var(--ax-dim);margin-top:2px;line-height:1.45;}
.ax-rev-amt{font-weight:800;font-size:1.02rem;text-align:right;white-space:nowrap;}
.ax-rev-dest{padding:22px;border-radius:20px;background:linear-gradient(160deg,rgba(63,155,255,.1),rgba(57,255,136,.07));border:1px solid rgba(53,216,208,.22);}
.ax-rev-dest h3{font-size:1.02rem;font-weight:700;margin:0 0 14px;}
.ax-rev-dest ul{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:10px;}
.ax-rev-dest li{display:flex;align-items:center;gap:10px;font-size:.9rem;font-weight:600;}
.ax-rev-dest li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ax-grad);flex-shrink:0;box-shadow:0 0 10px rgba(53,216,208,.5);}
.ax-rev-dest li em{font-style:normal;font-family:'Silkscreen',monospace;font-size:.54rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ax-gold);
  border:1px solid rgba(255,200,97,.3);border-radius:6px;padding:2px 6px;}
.ax-rev-dest p{font-size:.8rem;line-height:1.55;margin:0;color:var(--ax-faint);}

/* How to buy */
.ax-buy{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;counter-reset:ax-buy;}
.ax-buy-step{padding:22px;border-radius:20px;background:rgba(255,255,255,.03);border:1px solid var(--ax-line);}
.ax-buy-step::before{counter-increment:ax-buy;content:"0" counter(ax-buy);display:block;font-family:'Silkscreen',monospace;font-size:.8rem;
  letter-spacing:.1em;color:var(--ax-cyan);margin-bottom:14px;}
.ax-buy-step h3{font-size:1.02rem;font-weight:700;margin:0 0 6px;}
.ax-buy-step p{font-size:.88rem;line-height:1.55;margin:0;}
.ax-buy-step a{color:var(--ax-green);}
.ax-buy-step a:hover{text-decoration:underline;}
.ax-disclaimer{font-size:.78rem;line-height:1.6;color:var(--ax-faint);max-width:760px;margin:0;padding-top:26px;border-top:1px solid var(--ax-line);}

/* ---- Responsive ---- */
@media (max-width:900px){
  .ax-token-hero{grid-template-columns:1fr;text-align:left;}
  .ax-coin{width:min(72%,320px);order:-1;}
  .ax-facts{grid-template-columns:repeat(2,1fr);}
  .ax-fact:nth-child(3){border-left:none;}
  .ax-fact:nth-child(n+3){border-top:1px solid var(--ax-line);}
  .ax-cards3,.ax-buy{grid-template-columns:1fr;}
  .ax-fly,.ax-rev{grid-template-columns:1fr;}
  .ax-fly-svg{max-width:400px;}
}
@media (max-width:640px){
  :is(.ax-page,.ax-dock-host) nav.ax-dock{left:10px;right:10px;transform:none;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:6px;border-radius:22px;}
  .ax-dock-sep{display:none;}
  .ax-dock-item{flex-direction:column;gap:5px;padding:7px 2px 6px;border-radius:15px;text-align:center;}
  .ax-dock-item:hover{transform:none;}
  .ax-dock-ico{width:38px;height:38px;}
  .ax-dock-txt{align-items:center;}
  .ax-dock-txt strong{font-size:.76rem;}
  .ax-dock-txt small{display:none;}
  .ax-dock-item[data-accent="reward"]::after{content:"";position:absolute;top:6px;right:calc(50% - 24px);width:7px;height:7px;border-radius:50%;
    background:var(--ax-gold);box-shadow:0 0 8px var(--ax-gold);}
  .ax-top-cta{padding:8px 12px;font-size:.76rem;}
  .ax-brand{font-size:.82rem;}
  .ax-brand img{width:32px;}
  .ax-hero{padding:88px 18px 130px;}
  .ax-mark{width:min(78vw,340px);}
  .ax-reward-grid{grid-template-columns:1fr;}
  .ax-modal-card{padding:26px 20px 20px;}
  .ax-main{padding-top:92px;}
  .ax-facts{margin-bottom:64px;}
  .ax-section{margin-bottom:64px;}
  .ax-rev-row{grid-template-columns:1fr auto;padding:14px 16px;}
  .ax-rev-row .ax-tag{grid-column:1 / -1;justify-self:start;}
  .ax-actions .ax-btn{flex:1 1 auto;}
}
@media (max-width:380px){
  .ax-brand span{display:none;}
}

/* ---- Quick bar: slim Launch / Explore pill floating just above the dock
   (built by arcircle-hub.js, which also measures the dock into --ax-dock-h) */
:is(.ax-page,.ax-dock-host) nav.ax-quick{position:fixed;z-index:40;left:50%;transform:translateX(-50%);
  bottom:calc(max(22px,calc(env(safe-area-inset-bottom) + 12px)) + var(--ax-dock-h,78px) + 10px);
  display:flex;gap:4px;padding:4px;border-radius:999px;width:auto;margin:0;overflow:visible;flex-wrap:nowrap;min-width:0;
  background:var(--ax-glass);border:1px solid rgba(255,255,255,.1);
  backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);
  box-shadow:0 14px 36px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.06);}
:is(.ax-page,.ax-dock-host) .ax-quick > .ax-quick-item{margin:0;}
.ax-quick-item{position:relative;display:flex;align-items:center;gap:8px;padding:5px 16px 5px 5px;border-radius:999px;
  font-family:'Sora',sans-serif;font-size:.8rem;font-weight:700;line-height:1.2;letter-spacing:-.01em;
  color:var(--ax-ink);text-decoration:none;white-space:nowrap;isolation:isolate;overflow:hidden;
  transition:background .2s,box-shadow .2s,transform .2s,filter .2s;}
.ax-quick-ico{width:26px;height:26px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;
  background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);}
.ax-quick-item svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
:is(.ax-page,.ax-dock-host) .ax-quick a.ax-quick-item:hover{color:var(--ax-ink);background:rgba(255,255,255,.07);}
.ax-quick-item[aria-current="page"]:not(.ax-quick-launch){background:rgba(255,255,255,.09);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);}

/* Launch: the one primary action — layered gradient, glass highlight, glow,
   and a slow light sweep so it reads as "the button" without shouting. */
:is(.ax-page,.ax-dock-host) .ax-quick a.ax-quick-launch,
:is(.ax-page,.ax-dock-host) .ax-quick a.ax-quick-launch:hover{
  color:#03130c;
  background:
    radial-gradient(120% 140% at 0% 0%, rgba(255,255,255,.35), transparent 55%),
    linear-gradient(100deg,#3f9bff 0%,#35d8d0 52%,#39ff88 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -1px 0 rgba(0,0,0,.18),
    0 6px 18px rgba(53,216,208,.28),0 0 0 1px rgba(120,230,220,.35);}
.ax-quick-launch .ax-quick-ico{background:rgba(3,19,12,.16);box-shadow:inset 0 0 0 1px rgba(3,19,12,.14);}
.ax-quick-launch::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.5) 48%,transparent 66%);
  transform:translateX(-120%);animation:axQuickSweep 4.8s ease-in-out 1.2s infinite;}
@keyframes axQuickSweep{0%,62%{transform:translateX(-120%);}86%,100%{transform:translateX(120%);}}
:is(.ax-page,.ax-dock-host) .ax-quick a.ax-quick-launch:hover{transform:translateY(-1px);filter:brightness(1.06) saturate(1.05);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -1px 0 rgba(0,0,0,.18),
    0 10px 26px rgba(53,216,208,.4),0 0 0 1px rgba(150,240,230,.5);}
:is(.ax-page,.ax-dock-host) .ax-quick a.ax-quick-launch[aria-current="page"]{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -1px 0 rgba(0,0,0,.18),
    0 0 22px rgba(57,255,136,.45),0 0 0 1px rgba(180,255,220,.6);}
.ax-quick-item:focus-visible{outline:2px solid #fff;outline-offset:2px;}
@media (prefers-reduced-motion:reduce){.ax-quick-launch::after{animation:none;display:none;}}
@media (max-width:640px){
  :is(.ax-page,.ax-dock-host) nav.ax-quick{bottom:calc(max(22px,calc(env(safe-area-inset-bottom) + 12px)) + var(--ax-dock-h,84px) + 8px);}
  .ax-quick-item{padding:5px 15px 5px 5px;font-size:.78rem;}
}

/* ---- Dock + Reward popup hosted on ArcPad / CirclePad (body.ax-dock-host) ----
   Those pages keep their own sidebar shell; the dock just floats over it.
   body.bigpad-page forces Inter on nav/h2/h3 with !important, so the dock
   items and popup headings set their own font explicitly. */
.ax-dock-item{font-family:'Sora',sans-serif;}
.ax-modal-card{color:var(--ax-ink);font-family:'Sora',sans-serif;}
.ax-modal .ax-modal-card h2,.ax-modal .ax-modal-card h3{font-family:'Sora',sans-serif !important;color:var(--ax-ink);letter-spacing:-.02em;}
.ax-modal .ax-modal-card p{color:var(--ax-dim);}
body.ax-dock-host{padding-bottom:160px;}
@media (min-width:901px){
  /* centre over the content column, not the whole window (sidebar is 236px) */
  body.ax-dock-host nav.ax-dock,body.ax-dock-host nav.ax-quick{left:calc(50% + 118px);}
}

/* ============================================================
   $ARCIRCLE detail page inside ArcPad (arcpad.html#arcircle,
   driven by arcircle-coin.js). Everything is prefixed .ac2- so
   it can't leak into the shared dashboard shell.
   ============================================================ */
.ac2{--ac2-buy:#39d98a;--ac2-sell:#ff6b6b;--ac2-grad:linear-gradient(90deg,#3f9bff,#35d8d0,#39ff88);padding-top:22px;}
.ac2-muted{color:var(--ink-dim);font-weight:500;}

/* Sidebar entry + featured banners on Home / Explore */
.bp-nav-item.ac2-nav img{width:18px;height:auto;flex-shrink:0;}
.bp-nav-item.ac2-nav{color:#dfe9f5;}
.bp-nav-item.ac2-nav.active{background:#fff;color:#0a0a0a;}

.ac2-feature{
  position:relative;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:20px;
  width:100%;margin:26px 0 6px;padding:16px 20px;border-radius:16px;cursor:pointer;text-align:left;
  font:inherit;color:#fff;overflow:hidden;isolation:isolate;
  background:
    radial-gradient(420px 160px at 0% 50%, rgba(63,155,255,.16), transparent 70%),
    radial-gradient(420px 160px at 100% 50%, rgba(57,255,136,.10), transparent 70%),
    var(--panel);
  border:1px solid rgba(77,159,255,.28);
  transition:border-color .15s,transform .15s;
}
.ac2-feature::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--ac2-grad,linear-gradient(90deg,#3f9bff,#35d8d0,#39ff88));opacity:.7;}
.ac2-feature:hover{border-color:rgba(77,159,255,.6);transform:translateY(-1px);}
.ac2-feature-logo{width:58px;height:58px;border-radius:14px;display:grid;place-items:center;background:#05080d;border:1px solid var(--line);}
.ac2-feature-logo img{width:46px;height:auto;}
.ac2-feature-main{display:flex;flex-direction:column;gap:9px;min-width:0;}
.ac2-feature-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.ac2-feature-top strong{font-size:1.08rem;font-weight:800;letter-spacing:-.01em;}
.ac2-feature-kind{font-size:.74rem;color:var(--ink-dim);}
.ac2-feature-bar{display:block;height:6px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden;max-width:420px;}
.ac2-feature-bar span,.ac2-grad-bar span{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#3f9bff,#35d8d0,#39ff88);transition:width .6s ease;}
.ac2-feature-sub{font-size:.74rem;color:var(--ink-dim);}
.ac2-feature-stats{display:flex;gap:22px;}
.ac2-feature-stats small{display:block;font-size:.66rem;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px;}
.ac2-feature-stats strong{font-size:.98rem;font-weight:700;font-variant-numeric:tabular-nums;}
.ac2-feature-cta{padding:9px 16px;border-radius:10px;background:#fff;color:#0a0a0a;font-weight:700;font-size:.82rem;white-space:nowrap;}

/* Badges / chips */
.ac2-badge{display:inline-flex;align-items:center;gap:6px;font-size:.66rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  padding:4px 9px;border-radius:99px;border:1px solid var(--line);color:var(--ink-dim);background:rgba(255,255,255,.03);white-space:nowrap;}
.ac2-badge-core{color:#8fd8ff;border-color:rgba(77,159,255,.4);background:rgba(77,159,255,.1);}
.ac2-badge-live{color:var(--ac2-buy,#39d98a);border-color:rgba(57,217,138,.4);background:rgba(57,217,138,.08);}
.ac2-badge-live::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor;animation:ac2pulse 1.8s ease-in-out infinite;}
@keyframes ac2pulse{50%{opacity:.35;}}
.ac2-chip-btn{display:inline-flex;align-items:center;padding:5px 10px;border-radius:8px;border:1px solid var(--line);background:var(--panel-hi);
  color:#fff;font:inherit;font-size:.74rem;font-weight:600;cursor:pointer;text-decoration:none;transition:background .15s;}
.ac2-chip-btn:hover{background:#222;}
.ac2-chip-btn.copied{color:var(--ac2-buy);border-color:rgba(57,217,138,.4);}

/* Header */
.ac2-back{background:none;border:none;color:var(--ink-dim);font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;padding:0;margin-bottom:16px;}
.ac2-back:hover{color:#fff;}
.ac2-head{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.ac2-logo{width:72px;height:72px;object-fit:contain;padding:8px;border-radius:18px;background:#05080d;border:1px solid var(--line);flex-shrink:0;}
.ac2-title{flex:1;min-width:0;}
.ac2-name-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.ac2-name-row h1{font-size:1.7rem;font-weight:800;letter-spacing:-.02em;margin:0;line-height:1.1;}
.ac2-sym{font-family:'Silkscreen',monospace;font-size:.86rem;color:var(--ink-dim);}
.ac2-ca-row{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap;}
.ac2-ca-label{font-size:.66rem;font-weight:700;letter-spacing:.08em;color:var(--ink-dim);}
.ac2-ca-row code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;color:#dfe9f5;background:rgba(255,255,255,.04);border:1px solid var(--line);padding:4px 8px;border-radius:7px;}
.ac2-ca-short{display:none;}
.ac2-head-price{text-align:right;margin-left:auto;}
.ac2-price{font-size:1.9rem;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1;}
.ac2-price sub{font-size:.55em;vertical-align:-.25em;}
.ac2-change{font-size:.84rem;font-weight:700;margin-top:4px;color:var(--ink-dim);}
.ac2-change.up{color:var(--ac2-buy);}
.ac2-change.down{color:var(--ac2-sell);}

/* Stats + graduation */
.ac2-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;margin:22px 0 14px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden;}
.ac2-stat{background:var(--panel);padding:13px 15px;min-width:0;}
.ac2-stat small{display:block;font-size:.66rem;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;}
.ac2-stat strong{font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;}
.ac2-bs{font-size:.72rem;font-weight:600;margin-left:3px;}
.ac2-bs em{font-style:normal;}
.ac2-bs .b{color:var(--ac2-buy);}
.ac2-bs .s{color:var(--ac2-sell);}
.ac2-grad{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;}
.ac2-grad-top{display:flex;justify-content:space-between;gap:10px;font-size:.8rem;color:var(--ink-dim);margin-bottom:9px;}
.ac2-grad-top strong{color:#fff;font-variant-numeric:tabular-nums;}
.ac2-grad-bar{height:8px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden;}
.ac2-grad p{font-size:.74rem;color:var(--ink-dim);margin:9px 0 0;line-height:1.5;}

/* Layout */
.ac2-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;margin-top:16px;align-items:start;}
.ac2-main{display:flex;flex-direction:column;gap:16px;min-width:0;}
.ac2-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:18px;}
.ac2-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px;min-width:0;}
.ac2-card h3{font-size:.92rem;font-weight:700;margin:0;}
.ac2-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.ac2-card-tools{display:flex;gap:8px;flex-wrap:wrap;}
.ac2-seg{display:inline-flex;background:#070707;border:1px solid var(--line);border-radius:9px;padding:2px;}
.ac2-seg[hidden]{display:none;}
.ac2-seg button{background:none;border:none;color:var(--ink-dim);font:inherit;font-size:.74rem;font-weight:600;padding:5px 10px;border-radius:7px;cursor:pointer;}
.ac2-seg button:hover{color:#fff;}
.ac2-seg button.active{background:var(--panel-hi);color:#fff;}
.ac2-seg-sm button{padding:4px 8px;font-size:.72rem;}
.ac2-empty{padding:34px 12px;text-align:center;color:var(--ink-dim);font-size:.84rem;}
.ac2-note{font-size:.72rem;color:var(--ink-dim);line-height:1.5;margin:10px 0 0;}

/* Chart */
.ac2-chart{position:relative;height:300px;}
.ac2-chart svg{display:block;width:100%;height:100%;overflow:visible;}
.ac2-grid-line{stroke:rgba(255,255,255,.06);stroke-width:1;}
.ac2-axis{fill:#6e6e75;font-size:10.5px;font-family:Inter,sans-serif;font-variant-numeric:tabular-nums;}
.ac2-axis-last{fill:#fff;font-weight:700;}
.ac2-last-line{stroke-dasharray:3 4;stroke-width:1;opacity:.55;}
.ac2-dot{stroke:#0d0d0d;stroke-width:1.5;}
.ac2-dot.buy{fill:var(--ac2-buy);}
.ac2-dot.sell{fill:var(--ac2-sell);}
.ac2-cross{stroke:rgba(255,255,255,.28);stroke-dasharray:3 3;}
.ac2-cross-dot{fill:#fff;stroke:#0d0d0d;stroke-width:2;}
.ac2-tip{position:absolute;top:6px;pointer-events:none;background:rgba(10,10,12,.94);border:1px solid var(--line);border-radius:9px;padding:7px 10px;font-size:.72rem;line-height:1.5;white-space:nowrap;box-shadow:0 8px 24px rgba(0,0,0,.5);z-index:2;}
.ac2-tip strong{display:block;font-size:.84rem;}
.ac2-tip span{color:var(--ink-dim);}
.ac2-tip .buy{color:var(--ac2-buy);}
.ac2-tip .sell{color:var(--ac2-sell);}
.ac2-dex{height:420px;border-radius:12px;overflow:hidden;border:1px solid var(--line);}
.ac2-dex iframe{width:100%;height:100%;border:0;}

/* Tabs + tables */
.ac2-tabs{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line);margin:-4px -4px 12px;padding:0 4px;}
.ac2-tabs button{background:none;border:none;border-bottom:2px solid transparent;color:var(--ink-dim);font:inherit;font-size:.85rem;font-weight:700;padding:8px 12px 10px;cursor:pointer;margin-bottom:-1px;}
.ac2-tabs button:hover{color:#fff;}
.ac2-tabs button.active{color:#fff;border-bottom-color:var(--green);}
.ac2-scan{margin-left:auto;font-size:.7rem;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.ac2-filter{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap;}
.ac2-filter button{background:transparent;border:1px solid var(--line);color:var(--ink-dim);font:inherit;font-size:.74rem;font-weight:600;padding:5px 11px;border-radius:99px;cursor:pointer;}
.ac2-filter button.active{background:#fff;color:#0a0a0a;border-color:#fff;}
.ac2-table-wrap{overflow-x:auto;margin:0 -4px;}
.ac2-table{width:100%;border-collapse:collapse;font-size:.8rem;font-variant-numeric:tabular-nums;min-width:600px;}
.ac2-table th{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-dim);text-align:left;padding:8px 8px;border-bottom:1px solid var(--line);white-space:nowrap;}
.ac2-table td{padding:10px 8px;border-bottom:1px solid rgba(255,255,255,.05);white-space:nowrap;}
.ac2-table tr:last-child td{border-bottom:none;}
.ac2-table tbody tr:hover td{background:rgba(255,255,255,.02);}
.ac2-table .r{text-align:right;}
.ac2-type{display:inline-block;font-size:.7rem;font-weight:800;letter-spacing:.03em;padding:2px 8px;border-radius:6px;}
.ac2-type.buy{color:var(--ac2-buy);background:rgba(57,217,138,.1);}
.ac2-type.sell{color:var(--ac2-sell);background:rgba(255,107,107,.1);}
.ac2-table tr.buy td:nth-child(3){color:#bff3d8;}
.ac2-table tr.sell td:nth-child(3){color:#ffc9c9;}
.ac2-table tr.is-new td{animation:ac2flash 1.6s ease;}
@keyframes ac2flash{from{background:rgba(77,159,255,.14);}to{background:transparent;}}
.ac2-addr{color:#dfe9f5;text-decoration:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;}
.ac2-addr:hover{color:var(--green);}
.ac2-tx{color:var(--ink-dim);text-decoration:none;}
.ac2-tx:hover{color:#fff;}
.ac2-you{display:inline-block;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#0a0a0a;background:var(--green);border-radius:5px;padding:1px 5px;margin-left:5px;vertical-align:1px;}
.ac2-tag{display:inline-block;font-size:.62rem;font-weight:700;letter-spacing:.04em;color:var(--ink-dim);border:1px solid var(--line);border-radius:5px;padding:1px 6px;margin-left:6px;}
.ac2-more{display:block;margin:12px auto 2px;background:var(--panel-hi);border:1px solid var(--line);color:#fff;font:inherit;font-size:.78rem;font-weight:600;padding:8px 18px;border-radius:9px;cursor:pointer;}
.ac2-more[hidden]{display:none;}

.ac2-holders{display:flex;flex-direction:column;}
.ac2-holder{display:grid;grid-template-columns:26px minmax(0,1fr) 120px 110px 64px;align-items:center;gap:12px;padding:9px 4px;border-bottom:1px solid rgba(255,255,255,.05);font-size:.8rem;font-variant-numeric:tabular-nums;}
.ac2-holder:last-child{border-bottom:none;}
.ac2-holder-who{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ac2-rank{color:var(--ink-dim);font-size:.74rem;text-align:right;}
.ac2-holder-bar{height:5px;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden;}
.ac2-holder-bar span{display:block;height:100%;background:linear-gradient(90deg,#3f9bff,#35d8d0);border-radius:inherit;}
.ac2-holder-amt{text-align:right;}
.ac2-holder-pct{text-align:right;color:var(--ink-dim);}

.ac2-about-lede{font-size:.84rem;line-height:1.6;color:#cfd6de;margin:0 0 14px;}
.ac2-about-lede a{color:var(--green);text-decoration:none;}
.ac2-dl{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.ac2-dl > div{background:var(--panel);padding:11px 13px;min-width:0;}
.ac2-dl dt{font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-dim);margin-bottom:4px;}
.ac2-dl dd{margin:0;font-size:.84rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;}
.ac2-dl a{color:#dfe9f5;text-decoration:none;}
.ac2-dl a:hover{color:var(--green);}

/* Swap card */
.ac2-swap{padding:14px;}
.ac2-swap-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#070707;border:1px solid var(--line);border-radius:11px;padding:3px;margin-bottom:12px;}
.ac2-swap-tabs button{background:none;border:none;color:var(--ink-dim);font:inherit;font-size:.86rem;font-weight:700;padding:8px;border-radius:8px;cursor:pointer;transition:background .15s,color .15s;}
.ac2-swap-tabs button[data-side="buy"].active{background:var(--ac2-buy);color:#04140b;}
.ac2-swap-tabs button[data-side="sell"].active{background:var(--ac2-sell);color:#1a0505;}
.ac2-field{background:#080808;border:1px solid var(--line);border-radius:12px;padding:11px 12px;transition:border-color .15s;}
.ac2-field:focus-within{border-color:rgba(255,255,255,.28);}
.ac2-field-top{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.72rem;color:var(--ink-dim);margin-bottom:6px;}
.ac2-bal{background:none;border:none;color:var(--ink-dim);font:inherit;font-size:.72rem;cursor:pointer;padding:0;font-variant-numeric:tabular-nums;}
.ac2-bal:hover{color:#fff;}
.ac2-field-row{display:flex;align-items:center;gap:10px;}
.ac2-field-row input,.ac2-field-row output{flex:1;min-width:0;background:none;border:none;outline:none;color:#fff;font:inherit;font-size:1.45rem;font-weight:700;font-variant-numeric:tabular-nums;padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ac2-field-row input::placeholder{color:#3d3d42;}
.ac2-field-out output{color:#dfe9f5;}
.ac2-unit{font-size:.78rem;font-weight:700;padding:5px 9px;border-radius:8px;background:var(--panel-hi);border:1px solid var(--line);white-space:nowrap;}
.ac2-quick{display:flex;gap:5px;margin-top:9px;flex-wrap:wrap;}
.ac2-quick:empty{display:none;}
.ac2-quick button{flex:1;min-width:0;white-space:nowrap;background:var(--panel-hi);border:1px solid var(--line);color:#cfd6de;font:inherit;font-size:.72rem;font-weight:600;padding:5px 4px;border-radius:7px;cursor:pointer;}
.ac2-quick button:hover{background:#232323;color:#fff;}
.ac2-arrow{width:30px;height:30px;margin:-8px auto;position:relative;z-index:1;display:grid;place-items:center;border-radius:9px;background:var(--panel);border:1px solid var(--line);color:var(--ink-dim);font-size:.85rem;}
.ac2-quote{margin:12px 0 0;display:flex;flex-direction:column;gap:6px;}
.ac2-quote > div{display:flex;justify-content:space-between;gap:10px;font-size:.76rem;}
.ac2-quote dt{color:var(--ink-dim);}
.ac2-quote dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;}
.ac2-quote dd.warn{color:var(--amber);}
.ac2-slip{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.76rem;color:var(--ink-dim);margin:12px 0;}
.ac2-submit{width:100%;padding:13px;border:none;border-radius:11px;font:inherit;font-size:.92rem;font-weight:800;cursor:pointer;background:var(--ac2-buy);color:#04140b;transition:filter .15s,opacity .15s;}
.ac2-swap.is-sell .ac2-submit{background:var(--ac2-sell);color:#1a0505;}
.ac2-submit:hover:not(:disabled){filter:brightness(1.08);}
.ac2-submit:disabled{opacity:.45;cursor:not-allowed;}
.ac2-submit.neutral{background:#fff;color:#0a0a0a;}
.ac2-status:empty{display:none;}
.ac2-status{margin-top:10px;}
.ac2-msg{font-size:.76rem;line-height:1.5;padding:9px 11px;border-radius:9px;border:1px solid var(--line);background:var(--panel-hi);word-break:break-word;}
.ac2-msg a{color:inherit;font-weight:700;}
.ac2-msg.pending{border-color:rgba(77,159,255,.35);color:#9cc8ff;}
.ac2-msg.success{border-color:rgba(57,217,138,.4);color:var(--ac2-buy);}
.ac2-msg.error{border-color:rgba(255,107,107,.4);color:var(--ac2-sell);}
.ac2-msg.warn{border-color:rgba(255,182,72,.4);color:var(--amber);}
.ac2-fine{font-size:.68rem;color:#6a6a70;line-height:1.5;margin:10px 0 0;}

.ac2-links{display:flex;flex-direction:column;gap:2px;padding:12px;}
.ac2-links h3{margin:2px 6px 8px;}
.ac2-links a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 8px;border-radius:9px;text-decoration:none;color:#fff;font-size:.82rem;font-weight:600;}
.ac2-links a[hidden]{display:none;}
.ac2-links a:hover{background:var(--panel-hi);}
.ac2-links small{color:var(--ink-dim);font-weight:500;font-size:.72rem;}

@media (max-width:1100px){
  .ac2-grid{grid-template-columns:minmax(0,1fr) 310px;}
  .ac2-stats{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:900px){
  .ac2-grid{grid-template-columns:minmax(0,1fr);}
  .ac2-main,.ac2-side{display:contents;}
  .ac2-chart-card{order:1;}
  .ac2-swap{order:2;}
  .ac2-main > .ac2-card:not(.ac2-chart-card){order:3;}
  .ac2-links{order:4;}
  .ac2-feature{grid-template-columns:auto 1fr auto;}
  .ac2-feature-stats{display:none;}
}
@media (max-width:640px){
  .ac2{padding-top:16px;}
  .ac2-logo{width:56px;height:56px;border-radius:14px;padding:6px;}
  .ac2-name-row h1{font-size:1.35rem;}
  .ac2-ca-full{display:none;}
  .ac2-ca-short{display:inline;}
  .ac2-head-price{text-align:left;margin-left:0;width:100%;display:flex;align-items:baseline;gap:10px;}
  .ac2-price{font-size:1.6rem;}
  .ac2-stats{grid-template-columns:repeat(2,1fr);}
  .ac2-stat{padding:11px 12px;}
  .ac2-chart{height:230px;}
  .ac2-dex{height:360px;}
  .ac2-card{padding:13px;border-radius:14px;}
  .ac2-dl{grid-template-columns:1fr;}
  .ac2-holder{grid-template-columns:22px minmax(0,1fr) 90px 54px;gap:8px;}
  .ac2-holder-bar{display:none;}
  .ac2-grad-top{flex-direction:column;gap:3px;}
  .ac2-head{align-items:flex-start;}
  .ac2-feature{grid-template-columns:auto 1fr;gap:14px;padding:14px;}
  .ac2-feature-logo{width:48px;height:48px;}
  .ac2-feature-logo img{width:38px;}
  .ac2-feature-cta{display:none;}
  .ac2-feature-kind{display:none;}
}
.ac2-dl > div:last-child:nth-child(odd){grid-column:1 / -1;}

/* ArcPad launch form: fixed starting point (no longer an input) */
.ap-start-fixed{background:var(--panel-hi);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:14px 0 4px;}
.ap-start-fixed-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.82rem;font-weight:600;color:#fff;margin-bottom:10px;}
.ap-start-fixed-tag{font-size:.66rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--green);border:1px solid color-mix(in srgb,var(--green) 40%,transparent);border-radius:99px;padding:3px 9px;white-space:nowrap;}
.ap-start-fixed-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.ap-start-fixed-row small{display:block;font-size:.68rem;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px;}
.ap-start-fixed-row strong{font-size:1.02rem;font-weight:700;font-variant-numeric:tabular-nums;}
.ap-start-fixed p.hint.hint{font-size:.75rem;color:var(--ink-dim);margin:12px 0 0;padding-top:10px;border-top:1px solid var(--line);line-height:1.5;}

/* ArcPad launch form — the submit button. Same visual language as the
   floating quick-bar Launch pill: layered Arc→Circle gradient, glass top
   highlight, soft glow, slow light sweep; spinner while launching. */
.ap-launch-btn{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:12px;
  width:100%;min-height:58px;margin-top:14px;padding:10px 14px 10px 10px;border:0;border-radius:16px;cursor:pointer;
  font-family:'Sora',sans-serif;font-size:1rem;font-weight:800;letter-spacing:-.01em;color:#03130c;
  background:
    radial-gradient(90% 160% at 0% 0%, rgba(255,255,255,.34), transparent 55%),
    linear-gradient(100deg,#3f9bff 0%,#35d8d0 52%,#39ff88 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -2px 0 rgba(0,0,0,.14),
    0 12px 30px rgba(53,216,208,.22),0 0 0 1px rgba(120,230,220,.3);
  transition:transform .18s,box-shadow .18s,filter .18s,opacity .18s;}
.ap-launch-btn::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.45) 50%,transparent 65%);
  transform:translateX(-120%);animation:axQuickSweep 5.5s ease-in-out 1s infinite;}
.ap-launch-btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.05) saturate(1.05);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -2px 0 rgba(0,0,0,.14),
    0 16px 38px rgba(53,216,208,.34),0 0 0 1px rgba(150,240,230,.5);}
.ap-launch-btn:active:not(:disabled){transform:translateY(0) scale(.99);}
.ap-launch-btn:focus-visible{outline:2px solid #fff;outline-offset:3px;}
.ap-launch-btn:disabled{cursor:not-allowed;opacity:.72;}
.ap-launch-btn-ico{width:38px;height:38px;flex-shrink:0;display:grid;place-items:center;border-radius:12px;
  background:rgba(3,19,12,.14);box-shadow:inset 0 0 0 1px rgba(3,19,12,.12);}
.ap-launch-btn-ico svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
.ap-launch-btn-label{flex:1;text-align:left;}
.ap-launch-btn-fee{flex-shrink:0;font-size:.72rem;font-weight:700;padding:6px 10px;border-radius:99px;
  background:rgba(3,19,12,.14);box-shadow:inset 0 0 0 1px rgba(3,19,12,.1);}
.ap-launch-btn.is-busy .ap-launch-btn-ico svg{display:none;}
.ap-launch-btn.is-busy .ap-launch-btn-ico::before{content:"";width:17px;height:17px;border-radius:50%;
  border:2px solid rgba(3,19,12,.25);border-top-color:#03130c;animation:apSpin .8s linear infinite;}
.ap-launch-btn.is-busy::after{animation-duration:1.6s;animation-delay:0s;}
@keyframes apSpin{to{transform:rotate(360deg);}}
.ap-launch-btn-note{font-size:.72rem;color:var(--ink-dim);text-align:center;margin:10px 0 0;}
@media (prefers-reduced-motion:reduce){.ap-launch-btn::after{animation:none;display:none;}}
@media (min-width:641px){
  .ap-launch-btn{padding:10px 130px;}
  .ap-launch-btn-label{flex:0 0 auto;text-align:center;}
  .ap-launch-btn-fee{position:absolute;right:14px;top:50%;transform:translateY(-50%);}
}

/* ---- Wallet dropdown: wrong-network switch (Arc pages, arc-shared.js) ---- */
.wallet-dropdown{min-width:240px;}
.wallet-dropdown-network.network-ok{color:var(--green);}
.wallet-dropdown-network.network-ok::before{background:var(--green);}
.wallet-dropdown-switch{margin:2px 6px 6px;padding:10px 12px;border:0;border-radius:10px;cursor:pointer;
  font:inherit;font-family:'Sora',sans-serif;font-size:.84rem;font-weight:800;color:#03130c;
  background:linear-gradient(100deg,#3f9bff 0%,#35d8d0 52%,#39ff88 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 6px 16px rgba(53,216,208,.2);}
.wallet-dropdown-switch[hidden]{display:none;}
.wallet-dropdown-switch:disabled{opacity:.7;cursor:progress;}
.wallet-dropdown-note{margin:0 6px 6px;padding:8px 10px;border-radius:9px;font-size:.74rem;line-height:1.45;color:#9cc8ff;
  background:rgba(77,159,255,.08);border:1px solid rgba(77,159,255,.25);}
.wallet-dropdown-note[hidden]{display:none;}
.wallet-dropdown-note.bad{color:var(--red);background:rgba(255,107,107,.08);border-color:rgba(255,107,107,.3);}
button.wallet-dropdown-item{width:100%;text-align:left;background:none;border:0;font:inherit;}
.network-badge.network-busy{opacity:.6;}
@media (max-width:640px){
  /* the red dot alone gave no hint it was tappable — spell the fix out */
  .network-badge.network-bad{font-size:.58rem;letter-spacing:.02em;width:auto;height:auto;padding:5px 9px 5px 7px;gap:5px;white-space:nowrap;}
  .wallet-dropdown{min-width:260px;}
}
.ap-launch-balance{font-size:.76rem;text-align:center;margin:10px 0 0;line-height:1.5;}
.ap-launch-balance:empty{display:none;}
.ap-launch-balance.ok{color:var(--ink-dim);}
.ap-launch-balance.short{color:var(--red);background:rgba(255,107,107,.08);border:1px solid rgba(255,107,107,.3);border-radius:10px;padding:8px 12px;}

/* ArcPad coin page (arcpad-coin.js) — reuses the $ARCIRCLE page's .ac2-* styles */
.apc-logo-wrap{position:relative;width:72px;height:72px;flex-shrink:0;}
.apc .ac2-logo{object-fit:cover;padding:0;}
.apc-logo-fallback{width:72px;height:72px;border-radius:18px;display:grid;place-items:center;font-family:'Sora',sans-serif;font-weight:800;font-size:1.6rem;color:#03130c;
  background:linear-gradient(135deg,#3f9bff,#35d8d0 55%,#39ff88);}
.apc-logo-fallback[hidden]{display:none;}
.apc-desc{font-size:.8rem !important;color:#cfd6de !important;margin-top:10px !important;white-space:pre-line;word-break:break-word;}
.apc-desc[hidden]{display:none;}
@media (max-width:640px){
  .apc-logo-wrap,.apc-logo-fallback{width:56px;height:56px;border-radius:14px;}
}

/* ArcPad launch form — pair token picker */
.ap-pair{margin:4px 0 14px;}
.ap-pair-seg{display:flex;gap:6px;flex-wrap:wrap;}
.ap-pair-seg button{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:11px;border:1px solid var(--line);background:var(--panel-hi);
  color:var(--ink-dim);font:inherit;font-family:'Sora',sans-serif;font-size:.84rem;font-weight:700;cursor:pointer;transition:all .15s;}
.ap-pair-seg button:hover{color:#fff;border-color:rgba(255,255,255,.2);}
.ap-pair-seg button.active{color:#fff;border-color:var(--green);background:color-mix(in srgb,var(--green) 12%,var(--panel-hi));box-shadow:0 0 0 1px var(--green) inset;}
.ap-pair-seg img{width:20px;height:auto;}
.ap-pair-dot{width:14px;height:14px;border-radius:50%;background:#2775ca;box-shadow:inset 0 0 0 3px #fff3;}
.ap-pair-ca{width:100%;box-sizing:border-box;margin-top:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace !important;font-size:.84rem !important;}
.ap-pair-ca[hidden]{display:none;}
.ap-pair-info{margin-top:10px;font-size:.78rem;line-height:1.55;color:var(--ink-dim);}
.ap-pair-info:empty{display:none;}
.ap-pair-info.ok .ap-pair-ok{color:#dfe9f5;}
.ap-pair-info a{color:inherit;}
.ap-pair-info.bad{color:var(--red);background:rgba(255,107,107,.07);border:1px solid rgba(255,107,107,.28);border-radius:10px;padding:8px 11px;}
.ap-pair-src{color:var(--ink-dim);}
.ap-pair-warn{display:block;margin-top:6px;color:var(--amber);}
.ap-pair-tag{font-family:'Inter',sans-serif;font-size:.62rem;font-weight:700;letter-spacing:.02em;color:var(--ink-dim);border:1px solid var(--line);border-radius:6px;padding:1px 5px;vertical-align:2px;}
.apc-usd{font-size:.72em;font-weight:600;color:var(--ink-dim);}
.apc-price-quote{font-size:.78rem;color:var(--ink-dim);font-variant-numeric:tabular-nums;margin-top:2px;}
.apc-price-quote[hidden]{display:none;}
.apc-sub{display:block;font-size:.68rem;font-weight:600;color:var(--ink-dim);margin-top:2px;overflow:hidden;text-overflow:ellipsis;}
