/* Blueprint product-site template (shared with ccledger/solentic
   subdomains) + explorer-specific components at the end. */
*{margin:0;padding:0;box-sizing:border-box}
::selection{background-color:#5674e1;color:#fff}
/* single light theme — keep mobile browsers from auto-inverting the brand */
:root{color-scheme:light}
html{background:#f5f5f7}
:root{
  --n50:#fff;--n100:#f5f5f7;--n200:#e6e6e6;--n300:#d9d9d9;
  --n600:#56555c;--n900:#18171f;
  --blue:#5674e1;--teal:#59b3d4;--lavender:#a7b1d4;
  --lavender-lt:#c6d2ff;--beige:#f2eee8;
  --border:var(--n300);--radius:.125rem;
  --font:Manrope,sans-serif;--mono:"Geist Mono",monospace;
  --h1:clamp(3.93rem,2.4rem + 2.48vw,5.37rem);
  --h2:clamp(2.55rem,1.55rem + 1.61vw,3.48rem);
  --h4:clamp(1.28rem,.95rem + .52vw,1.58rem);
  --text-main:clamp(.79rem,.66rem + .2vw,.91rem);
  --text-lg:clamp(.85rem,.52rem + .54vw,1.16rem);
  --text-sm:clamp(.68rem,.57rem + .17vw,.78rem);
  --text-xxl:clamp(1.49rem,.91rem + .94vw,2.03rem);
  --sec-space:clamp(.4rem,.34rem + .12vw,.5rem);
  --cta-grad:linear-gradient(135deg,#4a63c7,#6b82db 50%,#8fa0e8);
}
html{scroll-behavior:smooth}
body{
  font-family:var(--font);background:var(--n100);color:var(--n900);
  line-height:1.2;text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;transition:color .2s}
.link{color:var(--blue);text-decoration:underline}
h1,h2,h3,h4{font-family:var(--font);font-weight:400;line-height:1}
.mono{font-family:var(--mono)}

/* Container with Blueprint side-border pattern */
.pg{margin:0 2.5rem;padding-bottom:.6rem}
.ctr{width:84vw;max-width:100rem;margin:0 auto;border-left:1px solid var(--border);border-right:1px solid var(--border);height:100%}

/* Divider line */
.divider{height:1px;background:var(--border);margin:var(--sec-space) 0;width:100vw;position:relative;left:50%;transform:translateX(-50%)}

/* Header / Navbar */
.nav{position:relative;z-index:100;background:var(--n100);height:5.8rem;transition:box-shadow .3s ease,background .3s ease}
.nav-inner{
  display:flex;align-items:center;justify-content:space-between;
  height:100%;padding:0 2.5rem;
  width:84vw;max-width:100rem;margin:0 auto;
}
.signet-mark{height:2.6rem;width:auto;opacity:.85}
.signet-tag{font-family:var(--mono);font-size:.62rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--n600);margin-top:.9rem}
.nav-logo{height:2rem}
.nav-links{display:flex;gap:1.5rem;align-items:center}
.nav-links a{font-family:var(--mono);font-size:var(--text-sm);text-transform:uppercase;color:var(--n900)}
.nav-links a:hover{color:var(--blue)}
.nav-links a.active{color:var(--blue)}
.spacer-line{background:var(--border);height:1px;width:100vw;position:relative;left:50%;transform:translateX(-50%)}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:var(--text-sm);text-transform:uppercase;
  border-radius:var(--radius);height:2.75rem;padding:1rem 1.9rem;
  transition:all .2s;white-space:nowrap;border:none;cursor:pointer;
}
.btn-dark{background:var(--n900);color:var(--n50)}
.btn-dark:hover{background:#18171fcc;color:var(--n50)}
.btn-light{background:var(--n200);color:var(--n900)}
.btn-light:hover{background:var(--n300)}
.btn-row{display:flex;gap:.75rem;flex-wrap:wrap}

.cta-primary{
  display:inline-flex;align-items:center;justify-content:center;
  padding:1rem 1.9rem;background:var(--n900);color:#fff;border-radius:var(--radius);
  text-decoration:none;font-family:var(--mono);font-size:var(--text-sm);text-transform:uppercase;
  height:2.75rem;transition:opacity .2s;white-space:nowrap;border:none;cursor:pointer;
}
.cta-primary:hover{background:#18171fcc;color:#fff}

/* Section tag (// 01 pattern) */
.stag{
  font-family:var(--mono);font-size:var(--text-sm);
  text-transform:uppercase;letter-spacing:1px;margin-bottom:.625rem;
}
.stag .sl{color:var(--n300)}

/* Tags / pills */
.tag{
  display:inline-block;font-family:var(--mono);font-size:var(--text-sm);
  background:var(--beige);border-radius:var(--radius);padding:.75rem;
  line-height:1;text-transform:none;
}

/* Sections */
.sec{padding:1.9rem 0}
.sec-pad{padding:0 2rem}
.sec-white{background:var(--n50)}
.sec-title{font-size:var(--h2);margin-bottom:1rem}
.sec-desc{color:var(--n600);font-size:var(--text-lg);max-width:36rem;margin-bottom:2rem;line-height:139%}

/* Utilities */
.code{font-family:var(--mono);font-size:var(--text-sm);background:var(--n200);padding:.125rem .375rem;border-radius:var(--radius)}
.muted{color:var(--n600);font-size:var(--text-main);line-height:139%}
.mt-1{margin-top:1rem}

/* Hero — left-aligned like Blueprint.xyz */
.hero{padding:6rem 0 4rem;text-align:left;position:relative;overflow:hidden}
/* subtle blueprint grid — architectural texture shared with the pricing hero */
.hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(24,23,31,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(24,23,31,.045) 1px,transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(ellipse 72% 62% at 28% 0%,#000,transparent 74%);
  mask-image:radial-gradient(ellipse 72% 62% at 28% 0%,#000,transparent 74%)}
.hero-content{position:relative;z-index:2}
.hero .sec-pad{padding:0 2rem}
.hero .stag{font-size:var(--text-main);margin-bottom:.625rem;color:var(--n900)}
.hero h1{font-size:var(--h1);line-height:1;max-width:10em;padding-bottom:2rem}
.hero-body{color:var(--n600);font-size:var(--text-lg);max-width:28em;margin:0 0 1.5rem;line-height:139%}
.hero-tagline{font-size:var(--h4);font-weight:500;margin-bottom:1.5rem}
.hero-sub{color:var(--n600);font-size:var(--text-main);max-width:32rem;margin:0 0 2.5rem;line-height:139%}
.hero-cta{display:flex;gap:.75rem;justify-content:flex-start;flex-wrap:wrap;margin-bottom:2rem}
.hero-bar{
  display:flex;align-items:center;justify-content:flex-start;
  padding:1rem 0;flex-wrap:wrap;gap:.75rem;
}

/* Built on badge */
.built-on{
  display:inline-flex;align-items:center;gap:.5rem;
  margin:0 0 2rem;
  font-family:var(--mono);font-size:var(--text-sm);
  text-transform:uppercase;letter-spacing:.5px;color:var(--n600);
}
.built-on-label{opacity:.8}
.canton-logo{height:1.4rem;width:auto}
.built-on-name{font-weight:500;color:var(--n900)}

/* Stats grid */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:2.5rem 0 0}
.stats.cols-5{grid-template-columns:repeat(5,1fr)}
.stat-card{background:var(--n50);border:1px solid var(--border);border-radius:var(--radius);padding:2rem 1.5rem;text-align:center;transition:transform .25s ease,box-shadow .25s ease}
.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 20px rgba(0,0,0,.06)}
.stat-v{font-size:var(--text-xxl);font-weight:500;line-height:1;font-variant-numeric:tabular-nums}
.stat-v.blue{color:var(--blue)}
/* --teal (#59b3d4) is a 2.4:1 fail as text; --teal-text passes AA on white */
:root{--teal-text:#2c7d9c}
.stat-v.teal{color:var(--teal-text)}
.stat-sub{font-family:var(--mono);font-size:.62rem;color:var(--n600);margin-top:.4rem;letter-spacing:.3px}
.stat-l{font-family:var(--mono);font-size:var(--text-sm);color:var(--n600);margin-top:.5rem;text-transform:uppercase}

/* 2x2 feature cards */
.feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}
.feat-card{padding:2.25rem;border-right:1px solid var(--border);border-bottom:1px solid var(--border);transition:background .25s ease}
.feat-card:nth-child(2n){border-right:none}
.feat-card:nth-last-child(-n+2){border-bottom:none}
.feat-card:hover{background:var(--n200)}
.feat-card h3{font-size:var(--h4);font-weight:500;margin-bottom:.75rem}
.feat-card ul{list-style:none;padding:0}
.feat-card li{color:var(--n600);font-size:var(--text-main);line-height:139%;padding:.25rem 0 .25rem 1.25rem;position:relative}
.feat-card li::before{content:'';position:absolute;left:0;top:.55rem;width:6px;height:6px;border-radius:50%;background:var(--lavender)}

/* Infra metric cards */
.infra-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.infra-card{padding:2.25rem;border-right:1px solid var(--border);border-bottom:1px solid var(--border);transition:background .25s ease}
.infra-card:nth-child(4n){border-right:none}
.infra-card:nth-last-child(-n+4){border-bottom:none}
.infra-card:hover{background:var(--n200)}
.infra-lbl{font-family:var(--mono);font-size:var(--text-sm);color:var(--n600);text-transform:uppercase;letter-spacing:1px}
.infra-val{font-size:var(--h4);font-weight:500;margin-top:.25rem;line-height:125%}
.infra-sub{font-size:var(--text-main);color:var(--n600);margin-top:.25rem}
.infra-val.blue{color:var(--blue)}
.infra-val.teal{color:var(--teal-text)}

/* Logo/framework pills */
.logo-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}
.logo-pill{
  font-family:var(--mono);font-size:var(--text-sm);
  background:var(--beige);border-radius:var(--radius);padding:.75rem;
  display:inline-flex;align-items:center;gap:.5rem;line-height:1;
  transition:transform .2s ease,background .2s ease;
}
.logo-pill:hover{transform:translateY(-1px);background:var(--lavender-lt)}
.ldot{width:6px;height:6px;border-radius:50%;flex-shrink:0}

/* Hero parallax bg */
.hero-content{position:relative;z-index:1}
.hero-bg{
  position:absolute;top:-60%;left:-30%;right:-30%;bottom:-20%;
  background:radial-gradient(ellipse at 40% 0%,rgba(74,99,199,.35) 0%,rgba(107,130,219,.15) 30%,transparent 60%),
             radial-gradient(ellipse at 70% 10%,rgba(143,160,232,.2) 0%,transparent 45%),
             radial-gradient(ellipse at 20% 30%,rgba(86,116,225,.08) 0%,transparent 50%);
  will-change:transform;z-index:0;pointer-events:none;
}

/* Footer CTA */
.footer-cta{
  background-color:var(--lavender);
  background-image:url('https://cdn.prod.website-files.com/6947f766208b9120532d664c/694a3af03c60483ad368fb36_footer-pattern.svg');
  background-size:cover;background-position:center;
  padding:5rem 1.5rem 4.25rem;text-align:center;
  border-radius:var(--radius);
  border-left:1px solid rgba(255,255,255,.3);border-right:1px solid rgba(255,255,255,.3);
  width:84vw;max-width:100rem;margin-left:auto;margin-right:auto;
}
.footer-cta h2{
  font-family:var(--mono);font-size:2.6875rem;font-weight:200;
  text-transform:uppercase;line-height:150%;margin-bottom:2rem;color:var(--n900);
}
.footer-cta-desc{font-size:var(--text-lg);color:var(--n900);max-width:28em;margin:0 auto 2rem;line-height:139%}
.footer-cta-url{font-family:var(--mono);background:rgba(0,0,0,.06);padding:.2em .4em;border-radius:var(--radius)}

/* Signet section */
.signet-section{
  text-align:center;padding:2.75rem 0;
  background:var(--n50);
  border-left:1px solid var(--border);border-right:1px solid var(--border);
  width:84vw;max-width:100rem;margin:0 auto;
}

/* Footer bottom */
.sec-footer-bottom{
  background:var(--n100);
  border-top:1px solid var(--border);
  border-left:1px solid var(--border);border-right:1px solid var(--border);
  width:84vw;max-width:100rem;margin:0 auto;
  padding:3rem 2rem;text-transform:uppercase;
  font-family:var(--mono);font-size:.875rem;
}
.footer-row{
  display:flex;justify-content:space-between;align-items:center;
  width:100%;margin-bottom:15px;
}
.footer-links{display:flex;gap:2rem;color:var(--n900)}
.sec-footer-bottom a{font-family:var(--mono);font-size:.875rem;color:var(--n900);line-height:1rem;text-decoration:underline}
.sec-footer-bottom a:hover{color:#18171fbf}
.footer-copy{font-family:var(--mono);font-size:.875rem;color:var(--n900)}

/* Mobile hamburger + overlay */
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem;min-width:2.75rem;min-height:2.75rem;-webkit-tap-highlight-color:transparent}
.nav-toggle span{display:block;width:20px;height:2px;background:var(--n900);margin:4px 0;transition:transform .3s ease,opacity .3s ease}
.nav-toggle.open span:nth-child(1){transform:rotate(45deg) translate(3px,5px)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:rotate(-45deg) translate(3px,-5px)}
.nav-mobile{
  display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:99;
  background:rgba(245,245,247,.97);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  flex-direction:column;align-items:center;justify-content:center;gap:2rem;
  opacity:0;transition:opacity .3s ease;
}
.nav-mobile.open{display:flex;opacity:1}
.nav-mobile a{font-family:var(--mono);font-size:1.25rem;text-transform:uppercase;color:var(--n900);padding:.75rem 1rem}

/* Responsive — tablet */
@media(max-width:991px){
  .pg{margin:0 1rem}
  .ctr{width:auto}
  .nav-inner{width:auto;padding:0 1.25rem}
  .nav-toggle{display:block}
  .nav-links{display:none}
  .hero{padding:3rem 0}
  .hero h1{font-size:clamp(2rem,5vw + 1rem,3rem)}
  .hero-body,.hero-sub{font-size:var(--text-main)}
  .stats,.stats.cols-5,.infra-grid{grid-template-columns:1fr 1fr}
  .feat-grid{grid-template-columns:1fr}
  .sec{padding:1.6rem 0}
  .sec-pad{padding:0 1rem}
  .sec-title{font-size:clamp(1.5rem,3vw + .5rem,2rem)}
  .footer-cta h2{font-size:1.75rem}
  .footer-cta{padding:5rem 1.5rem 3rem;width:auto}
  .signet-section{width:auto}
  .signet-mark{height:2.2rem}
  .sec-footer-bottom{width:auto}
  .cta-primary{font-size:var(--text-main);padding:.625rem 1.5rem}
}
/* Responsive — mobile */
@media(max-width:479px){
  .pg{margin:0}
  .ctr{width:100%;border:none}
  .nav{height:auto;margin:1.25rem}
  .nav-inner{padding:0;align-items:flex-end}
  .nav-logo{height:1.5rem}
  .hero{padding:2rem 0}
  .hero h1{font-size:1.85rem;max-width:100%;padding:0 .5rem 1rem}
  .hero-body{max-width:100%;padding:0 .5rem;font-size:var(--text-main)}
  .hero-sub{max-width:100%;padding:0 .5rem}
  .hero-cta{padding:0 .5rem}
  .cta-primary{width:100%;text-align:center}
  .hero-bar{gap:.35rem;padding:0 .5rem}
  .tag{padding:.4rem .6rem;font-size:clamp(.6rem,.55rem + .1vw,.68rem)}
  .stats,.stats.cols-5{grid-template-columns:1fr 1fr;gap:.5rem;padding:0 .5rem}
  .stat-card{padding:1.25rem .75rem}
  .stat-v{font-size:clamp(1.1rem,.9rem + .4vw,1.49rem)}
  .infra-grid{grid-template-columns:1fr 1fr}
  .infra-card{padding:1.25rem}
  .sec-title{font-size:clamp(1.35rem,1rem + .7vw,1.75rem)}
  .sec-desc{font-size:var(--text-main)}
  .logo-row{gap:.35rem}
  .logo-pill{padding:.5rem .6rem;font-size:clamp(.6rem,.55rem + .1vw,.68rem)}
  .footer-cta h2{font-size:1.3rem;line-height:140%}
  .footer-cta{padding:4rem 1rem 2.5rem;width:100%;border:none}
  .footer-cta p{font-size:var(--text-main)}
  .signet-section{width:100%;border:none}
  .sec-footer-bottom{width:100%;border-left:none;border-right:none;border-bottom:none;padding:2rem 1rem}
  .footer-row{flex-flow:column;align-items:flex-start;gap:1rem}
  .footer-links{flex-flow:column;gap:1rem;align-items:flex-start}
  .footer-copy{text-align:left}
  .divider{display:none}
  .feat-card{padding:1.5rem}
  .btn{font-size:clamp(.6rem,.55rem + .1vw,.68rem);padding:.75rem 1.25rem}
}

:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:var(--radius)}
a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
.skip-link{position:absolute;left:-9999px;top:0;width:1px;height:1px;overflow:hidden;padding:1rem;background:var(--n900);color:#fff;z-index:1000;font-family:var(--mono);font-size:var(--text-sm);border-radius:var(--radius)}
.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;overflow:visible}

/* ==================================================================
   Explorer data layer — institutional-grade polish on the Blueprint
   template: layered rows, semantic amounts, motion, skeletons.
   ================================================================== */
:root{
  --pos:#2e7d4f;--neg:#b3423a;
  --ease:cubic-bezier(.16,1,.3,1);
  --shadow-1:0 1px 2px rgba(24,23,31,.04),0 2px 8px rgba(24,23,31,.04);
  --shadow-2:0 2px 6px rgba(24,23,31,.05),0 10px 28px rgba(24,23,31,.07);
}

/* page transition */
.page-in{animation:pageIn .45s var(--ease) both}
@keyframes pageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

.loading{font-family:var(--mono);font-size:var(--text-sm);color:var(--n600);text-transform:uppercase;letter-spacing:1px;padding:4rem 2rem;text-align:center}
.err{font-family:var(--mono);font-size:var(--text-sm);color:var(--neg);padding:1.5rem 2rem}
.note{font-family:var(--mono);font-size:var(--text-sm);color:var(--n600);margin:.75rem 0;letter-spacing:.5px;text-transform:uppercase}

/* skeleton shimmer */
.skel{position:relative;overflow:hidden;background:var(--n200);border-radius:var(--radius)}
.skel::after{content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);
  animation:shimmer 1.4s infinite}
@keyframes shimmer{100%{transform:translateX(100%)}}
.skel-row{display:flex;gap:1rem;align-items:center;padding:.95rem 1.25rem;border-bottom:1px solid var(--n100)}
.skel-row:last-child{border-bottom:none}

/* ------------------------------------------------------------ search */
.search_wrap{position:relative;max-width:52rem;margin:0 0 .5rem}
.search{
  width:100%;height:3.1rem;padding:0 1.25rem 0 2.9rem;
  font-family:var(--mono);font-size:var(--text-main);color:var(--n900);
  background:var(--n50);border:1px solid var(--border);border-radius:var(--radius);outline:none;
  transition:border-color .25s var(--ease),box-shadow .25s var(--ease);
  box-shadow:var(--shadow-1);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%2356555c' stroke-width='2.2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:1.1rem center;
}
.search::placeholder{color:var(--n600);transition:color .28s ease,opacity .28s ease}
.search:focus::placeholder{color:transparent;opacity:0}
.search:focus{border-color:var(--n900);box-shadow:0 0 0 3px var(--lavender-lt)}
/* aurora morph for an open party name — brand hues only */
.aurora{background:linear-gradient(100deg,#5674e1,#59b3d4,#a7b1d4,#c6d2ff,#5674e1);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:auroraMorph 8s ease-in-out infinite}
@keyframes auroraMorph{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@media(prefers-reduced-motion:reduce){.aurora{animation:none}}
/* ccscan brand lockup — dark "cc" keylined in Canton yellow (#f3ff97) + aurora
   "scan". No box, no glow: larger, institutional. */
.cc-lockup{display:inline-flex;align-items:baseline;gap:.03em;margin:.2rem 0 1.3rem}
.cc-cc{color:#18171f;-webkit-text-stroke:3.5px #f3ff97;paint-order:stroke fill;
  font-family:var(--font);font-weight:800;font-size:clamp(3.3rem,7vw,4.9rem);letter-spacing:-.02em;line-height:1}
.cc-scan{font-family:var(--font);font-weight:800;font-size:clamp(3.3rem,7vw,4.9rem);letter-spacing:-.045em;line-height:1}
.hero .cc-h1{margin-top:0;font-size:clamp(1.55rem,1.1rem + 1.35vw,2.05rem);font-weight:500;max-width:none;padding-bottom:1.3rem;letter-spacing:-.01em;color:var(--n900)}
.search_results{
  position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:80;
  background:var(--n50);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow-2);overflow:hidden;max-height:26rem;overflow-y:auto;
  animation:pageIn .25s var(--ease) both;
}
.search_results a{
  display:flex;gap:.75rem;align-items:center;padding:.75rem 1rem;
  font-family:var(--mono);font-size:var(--text-sm);border-bottom:1px solid var(--n100);
  transition:background .15s;
}
.search_results a:hover,.search_results a.sel{background:var(--n100)}
.search_results .kind{
  font-size:.6rem;text-transform:uppercase;letter-spacing:1px;
  background:var(--n900);color:var(--n50);border-radius:var(--radius);padding:.3rem .5rem;flex-shrink:0;
}
.search_results .kind.party{background:var(--blue)}
.search_results .kind.round{background:var(--teal);color:var(--n900)}
.search_results .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.search_results mark{background:var(--lavender-lt);color:inherit;border-radius:2px;padding:0 1px}

/* ------------------------------------------------------------ tables
   table-layout:fixed + per-column widths + ellipsis everywhere:
   tables always fill 100% of the content column and can never
   overflow it — no horizontal scrolling, ever. */
.tbl_wrap{overflow:hidden;background:var(--n50);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1)}
table{width:100%;border-collapse:collapse;font-size:var(--text-main);table-layout:fixed}
th{
  font-family:var(--mono);font-weight:400;font-size:.62rem;letter-spacing:1.2px;
  text-transform:uppercase;color:var(--n600);text-align:left;
  padding:.7rem 1.1rem;border-bottom:1px solid var(--border);white-space:nowrap;
  background:var(--n50);overflow:hidden;text-overflow:ellipsis;
}
th.r,td.r{text-align:right}
td{
  padding:.85rem 1.1rem;border-bottom:1px solid var(--n100);vertical-align:middle;
  white-space:nowrap;line-height:1.45;overflow:hidden;text-overflow:ellipsis;
}
tr:last-child td{border-bottom:none}
tbody tr{transition:background .18s var(--ease)}
tbody tr:hover{background:var(--n100)}
tbody tr.rowlink{cursor:pointer}
td.num,.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
.hash{font-family:var(--mono);font-size:var(--text-sm);color:var(--blue)}
a.hash:hover{text-decoration:underline}
.dim{color:var(--n600)}

/* tx-table column plan (fixed layout: widths set on header cells;
   the transaction column absorbs all remaining width) */
th.c-seq{width:7.2rem}
th.c-type{width:8.6rem}
th.c-roles{width:9.5rem}
th.c-amt{width:9.5rem}
th.c-round{width:6.8rem}
th.c-time{width:8.5rem}
@media(max-width:1100px){th.c-roles{width:8rem}th.c-time{width:7.5rem}}
@media(max-width:1200px){th.c-roles,td.c-roles{display:none}}
@media(max-width:900px){
  th.c-round,td.c-round{display:none}
}
@media(max-width:640px){
  th.c-type,td.c-type{display:none}
  th.c-amt,td.c-amt{display:none}   /* amount is in the description line */
  th.c-seq{width:5.6rem}
  th.c-time{width:5.4rem}
  .cell-time .exact{display:none}
  .filters{gap:.4rem}
  .filters select,.filters input{max-width:100%;flex:1 1 7rem;min-width:0}
  .toggle{flex:0 0 auto}
}
/* wide numeric tables (daily stats): hide secondary columns as space shrinks */
@media(max-width:1100px){th.c-sm,td.c-sm{display:none}}
@media(max-width:760px){th.c-md,td.c-md{display:none}}

/* staggered row reveal */
tbody tr.rv{animation:rowIn .4s var(--ease) both;animation-delay:calc(var(--i,0)*22ms)}
@keyframes rowIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
tbody tr.row-new{animation:rowNew 3s ease both}
tbody tr.row-new td:first-child{animation:rowEdge 3s ease both}
@keyframes rowNew{0%{background:var(--lavender-lt)}17%{background:transparent}34%{background:var(--lavender-lt)}51%{background:transparent}68%{background:var(--lavender-lt)}100%{background:transparent}}
@keyframes rowEdge{0%,68%{box-shadow:inset 3px 0 0 var(--blue)}100%{box-shadow:inset 3px 0 0 transparent}}
/* live feed: only the newest row keeps pulsing; it drops in; the oldest fades out */
tbody tr.row-live{animation:rowDrop .5s cubic-bezier(.16,1,.3,1),livePulse 2.6s ease-in-out .5s infinite}
tbody tr.row-live td:first-child{box-shadow:inset 3px 0 0 var(--blue)}
@keyframes livePulse{0%,100%{background:transparent}50%{background:color-mix(in srgb,var(--lavender-lt) 48%,transparent)}}
@keyframes rowDrop{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
tbody tr.row-out{animation:rowFade .42s ease forwards;pointer-events:none}
@keyframes rowFade{to{opacity:0;transform:translateY(6px)}}
@media(prefers-reduced-motion:reduce){tbody tr.row-live{animation:none}}

/* layered tx cells — the flex column; truncates, never overflows */
.cell-flow{max-width:0;width:100%}
.flow-line{display:flex;align-items:center;gap:.45rem;overflow:hidden;white-space:nowrap}
/* ellipsis applies to the flex children (anchors), not the flex container */
.flow-line a.hash{min-width:0;overflow:hidden;text-overflow:ellipsis;flex-shrink:1}
.flow-line .arrow{color:var(--n300);flex-shrink:0}
.flow-desc{font-size:.72rem;color:var(--n600);margin-top:.22rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.1px}
.pplus{font-family:var(--mono);font-size:.65rem;color:var(--n600);background:var(--n100);border:1px solid var(--n200);border-radius:var(--radius);padding:.1rem .45rem;flex-shrink:0}

/* identicons */
.idn{display:inline-block;width:16px;height:16px;border-radius:5px;flex-shrink:0;vertical-align:-3px;box-shadow:inset 0 0 0 1px rgba(24,23,31,.08)}
.idn-lg{width:44px;height:44px;border-radius:10px;box-shadow:inset 0 0 0 1px rgba(24,23,31,.1),var(--shadow-1)}

/* amounts */
.cell-amt{font-family:var(--mono);font-weight:500;font-variant-numeric:tabular-nums;text-align:right}
.cell-amt .unit{font-size:.62rem;color:var(--n600);margin-left:.25rem;letter-spacing:.5px}
.amt-pos{color:var(--pos)}
.amt-neg{color:var(--neg)}
.amount{font-family:var(--mono);font-weight:500;font-variant-numeric:tabular-nums}

/* time cells */
.cell-time{text-align:right}
.cell-time .rel{color:var(--n900)}
.cell-time .exact{font-family:var(--mono);font-size:.62rem;color:var(--n600);margin-top:.2rem;letter-spacing:.3px}

/* chips */
.badge{
  display:inline-flex;align-items:center;gap:.35rem;
  font-family:var(--mono);font-size:.64rem;letter-spacing:.6px;text-transform:uppercase;
  background:var(--beige);border-radius:var(--radius);padding:.32rem .6rem;line-height:1;
  border:1px solid rgba(24,23,31,.06);
}
.badge::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--n600)}
.badge.transfer{background:var(--lavender-lt)}
.badge.transfer::before{background:var(--blue)}
.badge.mint{background:#ddf1d8}
.badge.mint::before{background:#3d8a4e}
.badge.tap{background:#fdeacc}
.badge.tap::before{background:#c98a2b}
.badge.abort_transfer_instruction{background:#f6d6d2}
.badge.abort_transfer_instruction::before{background:var(--neg)}
.badge.sender{background:var(--n900);color:var(--n50)}
.badge.sender::before{background:var(--n50)}
.badge.receiver{background:var(--blue);color:var(--n50)}
.badge.receiver::before{background:var(--n50)}
.badge.balance_change{background:var(--n200)}
.badge.locked{background:var(--n200)}
.badge.unlocked{background:#ddf1d8}
.badge.unlocked::before{background:#3d8a4e}

/* filters + pager */
.filters{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:0 0 1.25rem}
.filters select,.filters input{
  font-family:var(--mono);font-size:var(--text-sm);height:2.6rem;padding:0 .9rem;
  border:1px solid var(--border);border-radius:var(--radius);background:var(--n50);
  outline:none;color:var(--n900);text-transform:uppercase;box-shadow:var(--shadow-1);
  transition:border-color .2s,box-shadow .2s;
}
.filters select:focus,.filters input:focus{border-color:var(--n900);box-shadow:0 0 0 3px var(--lavender-lt)}
.toggle{
  font-family:var(--mono);font-size:var(--text-sm);text-transform:uppercase;
  height:2.6rem;padding:0 1.1rem;border:none;border-radius:var(--radius);
  background:var(--n200);color:var(--n900);cursor:pointer;
  transition:background .2s,transform .12s var(--ease);
}
.toggle:hover{background:var(--n300)}
.toggle:active{transform:scale(.97)}
.toggle.on{background:var(--n900);color:var(--n50)}
.pager{display:flex;gap:.75rem;align-items:center;margin-top:1.25rem;flex-wrap:wrap}
.pager .mono{color:var(--n600);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.5px}
.btn:active,.cta-primary:active{transform:scale(.98)}

/* key/value + cards */
.kv{display:grid;grid-template-columns:230px 1fr}
.kv>div{padding:.7rem 0;border-bottom:1px solid var(--n100);overflow-wrap:anywhere;font-size:var(--text-main);line-height:1.5}
.kv>div:nth-child(odd){font-family:var(--mono);font-size:.66rem;color:var(--n600);letter-spacing:1px;text-transform:uppercase;padding-top:.85rem}
.card{background:var(--n50);border:1px solid var(--border);border-radius:var(--radius);padding:1.6rem;margin-bottom:1rem;box-shadow:var(--shadow-1);transition:box-shadow .25s var(--ease)}
.card:hover{box-shadow:var(--shadow-2)}
.card_title{font-family:var(--mono);font-size:.66rem;color:var(--n600);letter-spacing:1.2px;text-transform:uppercase;margin-bottom:1rem}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:860px){.grid2{grid-template-columns:1fr}.kv{grid-template-columns:1fr}.kv>div:nth-child(odd){border-bottom:none;padding-bottom:0}}

/* flow diagram on tx detail */
.flowviz{display:flex;align-items:stretch;gap:0;margin:.25rem 0 1rem;flex-wrap:wrap}
.flowviz .node{
  flex:1;min-width:14rem;background:var(--n50);border:1px solid var(--border);
  border-radius:var(--radius);padding:1.1rem 1.25rem;box-shadow:var(--shadow-1);
}
.flowviz .node .nlbl{font-family:var(--mono);font-size:.62rem;color:var(--n600);letter-spacing:1.2px;text-transform:uppercase;margin-bottom:.5rem}
.flowviz .node .nparty{display:flex;align-items:center;gap:.5rem;overflow:hidden}
.flowviz .node .namt{font-family:var(--mono);font-size:1.05rem;font-weight:500;margin-top:.45rem;font-variant-numeric:tabular-nums}
.flowviz .mid{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:0 1.4rem;font-family:var(--mono);font-size:.66rem;color:var(--n600);
  letter-spacing:.5px;text-transform:uppercase;
}
.flowviz .mid .fline{width:4.5rem;height:1px;background:var(--n300);position:relative;margin:.45rem 0}
.flowviz .mid .fline::after{content:"";position:absolute;right:-1px;top:-2.5px;width:6px;height:6px;border-top:1px solid var(--n300);border-right:1px solid var(--n300);transform:rotate(45deg)}
@media(max-width:860px){.flowviz{flex-direction:column}.flowviz .mid{padding:.6rem 0}.flowviz .mid .fline{transform:rotate(90deg)}}

/* json viewer */
.json_wrap{position:relative;margin-bottom:1rem}
.json_bar{position:absolute;top:.65rem;right:.75rem;display:flex;gap:.4rem;z-index:2}
.json_bar .jbtn{
  font-family:var(--mono);font-size:.6rem;letter-spacing:.8px;text-transform:uppercase;
  background:var(--n50);border:1px solid var(--border);border-radius:var(--radius);
  color:var(--n600);padding:.35rem .6rem;cursor:pointer;transition:all .2s;
}
.json_bar .jbtn:hover{color:var(--n900);border-color:var(--n900)}
pre.json{
  font-family:var(--mono);font-size:.72rem;line-height:1.75;
  background:var(--n100);border:1px solid var(--border);color:var(--n900);
  border-radius:var(--radius);padding:1.4rem;overflow-x:auto;
  max-height:34rem;overflow-y:auto;transition:max-height .4s var(--ease);
}
pre.json.collapsed{max-height:9rem;overflow-y:hidden;
  -webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}
pre.json .k{color:var(--blue)}
pre.json .s{color:#3d8a4e}
pre.json .n{color:#4b9cb9}
.copy{cursor:pointer;color:var(--n600);margin-left:.5rem;font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.5px;transition:color .2s}
.copy:hover{color:var(--blue)}
.copy.ok{color:var(--pos)}

/* charts */
.chart_wrap{background:var(--n50);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-1);margin-bottom:1.5rem}
canvas.chart{width:100%;height:250px;display:block;cursor:crosshair}
.legend{display:flex;gap:1.25rem;margin-top:.85rem;font-family:var(--mono);font-size:.64rem;color:var(--n600);flex-wrap:wrap;text-transform:uppercase;letter-spacing:.8px}
.legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:.4rem;vertical-align:-1px}
.chart_tip{
  position:fixed;z-index:200;pointer-events:none;background:var(--n900);color:var(--n50);
  font-family:var(--mono);font-size:.66rem;letter-spacing:.4px;line-height:1.7;
  border-radius:var(--radius);padding:.55rem .75rem;box-shadow:var(--shadow-2);
  opacity:0;transition:opacity .15s;white-space:nowrap;
}
.chart_tip b{color:var(--lavender-lt);font-weight:400}

/* stat cards: count-up + accent line */
.stat-card{position:relative;overflow:hidden}
.stat-card::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--blue),var(--lavender-lt));opacity:0;transition:opacity .3s}
.stat-card:hover::after{opacity:1}
.live_dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#4caf6d;margin-right:.45rem;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* sub-page hero */
.page-hero{padding:3.4rem 0 2.4rem;position:relative;overflow:hidden}
.page-hero h1{font-size:var(--h2);line-height:1.05;padding-bottom:.6rem;max-width:none;overflow-wrap:anywhere}
.page-hero .stag{color:var(--n900)}
.page-hero .sec-desc{margin-bottom:.75rem}
.hero-party{display:flex;align-items:center;gap:1rem;margin-bottom:.6rem}

/* empty state */
.empty{
  text-align:center;padding:3.5rem 2rem;background:var(--n50);
  border:1px dashed var(--border);border-radius:var(--radius);
}
.empty .e-ico{font-family:var(--mono);font-size:1.4rem;color:var(--n300);margin-bottom:.75rem}
.empty .e-t{font-size:var(--text-lg);font-weight:500;margin-bottom:.35rem}
.empty .e-d{font-family:var(--mono);font-size:.68rem;color:var(--n600);text-transform:uppercase;letter-spacing:.8px}

/* scrollbars */
.tbl_wrap::-webkit-scrollbar,pre.json::-webkit-scrollbar,.search_results::-webkit-scrollbar{height:8px;width:8px}
.tbl_wrap::-webkit-scrollbar-thumb,pre.json::-webkit-scrollbar-thumb,.search_results::-webkit-scrollbar-thumb{background:var(--n300);border-radius:99px}
.tbl_wrap::-webkit-scrollbar-track,pre.json::-webkit-scrollbar-track{background:transparent}

@media(prefers-reduced-motion:reduce){
  .page-in,tbody tr.rv,tbody tr.row-new,.search_results{animation:none!important}
}

/* ==================================================================
   Network stats band (dashboard header) + monogram chips + width
   ================================================================== */
/* tables & data surfaces claim more of the content column */
.sec-pad .tbl_wrap,.sec-pad .filters,.sec-pad .chart_wrap,.sec-pad .netbar,.sec-pad .grid2{margin-left:-.9rem;margin-right:-.9rem}
@media(max-width:991px){.sec-pad .tbl_wrap,.sec-pad .filters,.sec-pad .chart_wrap,.sec-pad .netbar,.sec-pad .grid2{margin-left:-.4rem;margin-right:-.4rem}}
@media(max-width:479px){.sec-pad .tbl_wrap,.sec-pad .filters,.sec-pad .chart_wrap,.sec-pad .netbar,.sec-pad .grid2{margin-left:0;margin-right:0}}

/* generative blockies-style identity sigils */
.idn{
  display:inline-block;width:18px;height:18px;border-radius:5px;flex-shrink:0;
  vertical-align:-4px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(24,23,31,.08);
}
.idn svg{display:block;width:100%;height:100%}
.idn-lg{width:44px;height:44px;border-radius:11px;box-shadow:inset 0 0 0 1px rgba(24,23,31,.09),var(--shadow-1)}

/* branded loading spinner — the four Blueprint squares pulsing in sequence */
.spinner{display:inline-grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:2px;width:22px;height:22px;vertical-align:middle}
.spinner i{display:block;background:var(--blue);border-radius:2px;animation:spin4 1.2s infinite ease-in-out}
.spinner i:nth-child(1){animation-delay:0s}
.spinner i:nth-child(2){animation-delay:.12s}
.spinner i:nth-child(4){animation-delay:.24s}
.spinner i:nth-child(3){animation-delay:.36s}
@keyframes spin4{0%,70%,100%{opacity:.18;transform:scale(.72)}35%{opacity:1;transform:scale(1)}}
.spin-wrap{display:flex;flex-direction:column;align-items:center;gap:.8rem;padding:3.5rem 2rem;color:var(--n600);font-family:var(--mono);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:1px}
@media(prefers-reduced-motion:reduce){.spinner i{animation:none;opacity:.6}}

/* network stats band */
.netbar{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.5fr);
  background:var(--n50);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow-1);margin-top:1.6rem;overflow:hidden;
}
/* min-width:0 lets the tracks shrink so the ellipsis chain engages instead of
   the content overflowing the card (and pushing the chart out of view) */
.nb-col{padding:1.05rem 1.3rem;border-right:1px solid var(--n200);display:flex;flex-direction:column;gap:.9rem;justify-content:center;min-width:0}
.nb-col:last-child{border-right:none}
.nb-item{display:flex;gap:.7rem;align-items:flex-start;min-width:0}
.nb-ico{
  width:30px;height:30px;border-radius:7px;background:var(--n100);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--n600);
}
.nb-ico svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8}
.nb-l{font-family:var(--mono);font-size:.6rem;letter-spacing:1px;text-transform:uppercase;color:var(--n600);margin-bottom:.2rem}
.nb-v{font-family:var(--mono);font-size:.86rem;font-weight:500;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nb-v a:hover{color:var(--blue)}
.nb-v .sub{color:var(--n600);font-weight:400;font-size:.72rem}
.chg{font-size:.72rem;font-weight:500}
.chg.pos{color:var(--pos)}
.chg.neg{color:var(--neg)}
.nb-chart{padding:.9rem 1.1rem .5rem;display:flex;flex-direction:column;min-width:0}
.nb-chart canvas{width:100%;height:74px;display:block;flex:1}
.nb-chart .nb-l{margin-bottom:.4rem}
/* collapse to 2 columns earlier (1150px) so the sparkline keeps healthy width
   in the 992–1150 band instead of being squeezed to nothing */
@media(max-width:1150px){
  .netbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .nb-col{border-bottom:1px solid var(--n200)}
  .nb-col:nth-child(2n){border-right:none}
  .nb-col:nth-last-child(-n+2){border-bottom:none}
  .nb-col:nth-child(3){grid-column:1/-1;border-right:none}
  .nb-chart{grid-column:1/-1;border-top:1px solid var(--n200)}
}
@media(max-width:560px){.netbar{grid-template-columns:1fr}.nb-col{border-right:none}}

/* compact home hero */
.hero-compact{padding:2.6rem 0 1.6rem}
.hero-compact h1{font-size:var(--h2);padding-bottom:1rem;max-width:none}
.hero-compact .hero-body{margin-bottom:1.1rem}
.hero-row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-top:1rem}
.hero-row .built-on{margin:0 0 0 auto}
@media(max-width:760px){.hero-row .built-on{margin-left:0}}

/* ==================================================================
   UI overhaul: persistent search, rolling odometer, dashboard bits
   ================================================================== */
/* persistent unified search bar under the nav (sticks to top on scroll) */
.subnav{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--n100) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.subnav .pg{padding-bottom:0}
@media(max-width:479px){.subnav-ctr{padding:.6rem .25rem}}
.subnav-ctr{width:84vw;max-width:100rem;margin:0 auto;padding:.7rem 0}
.subnav .search_wrap{max-width:none;width:100%;margin:0}
.subnav .search{height:2.7rem;box-shadow:none;width:100%}
@media(max-width:991px){.subnav-ctr{width:auto;max-width:none}}
.search-big .search{height:3.5rem;font-size:var(--text-main)}
.search-empty{padding:.85rem 1rem;font-family:var(--mono);font-size:var(--text-sm);color:var(--n600)}

/* rolling-digit odometer for live "climbing" counters */
.odo{display:inline-flex;align-items:baseline;font-variant-numeric:tabular-nums}
.odo-d{position:relative;display:inline-block;width:1ch;height:1em;overflow:hidden;vertical-align:baseline}
.odo-col{position:absolute;left:0;top:0;display:flex;flex-direction:column;transition:transform .4s cubic-bezier(.16,1,.3,1);will-change:transform}
.odo-col>span{display:block;height:1em;line-height:1em;text-align:center}
.odo-sep{display:inline-block;width:.5ch;text-align:center}
.live-tick{display:inline-block;width:6px;height:6px;border-radius:50%;background:#4caf6d;margin-left:.3rem;vertical-align:middle;animation:pulse 1.6s infinite}
@media(prefers-reduced-motion:reduce){.odo-col{transition:none}.live-tick{animation:none}}

/* section header with an action button on the right */
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.3rem;flex-wrap:wrap}
.sec-head .sec-title{margin-bottom:0}
.sec-head .stag{margin-bottom:.35rem}
.chart-cap{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.8px;color:var(--n600);margin-bottom:.8rem}
.chart_wrap .legend{margin-top:.6rem}

/* ==================================================================
   Enhanced wireframe skeleton loaders (table + party tiles)
   ================================================================== */
.skel-tbl{overflow:hidden}
.skel-head{display:flex;gap:1rem;align-items:center;padding:.72rem 1.1rem;border-bottom:1px solid var(--border);background:var(--n50)}
.skel-h{height:.55rem;border-radius:3px;background:var(--n200)}
.skel-head .c-seq{width:3rem}.skel-head .c-type{width:3.4rem}.skel-head .grow{flex:1}
.skel-head .c-amt{width:4rem}.skel-head .c-round{width:3rem}.skel-head .c-time{width:3.4rem}
.skel-tbl .skel-row{display:flex;gap:1rem;align-items:center;padding:.9rem 1.1rem;border-bottom:1px solid var(--n100);animation:rowIn .45s var(--ease) both;animation-delay:calc(var(--i,0)*45ms)}
.skel-tbl .skel-row:last-child{border-bottom:none}
.skel-row .c-seq{width:5rem;flex-shrink:0}
.skel-row .c-type{width:4.4rem;flex-shrink:0}
.skel-flow{flex:1;min-width:0;display:flex;flex-direction:column}
.skel-row .c-amt{width:4.4rem;flex-shrink:0;margin-left:auto}
.skel-row .c-round{width:3rem;flex-shrink:0}
.skel-row .c-time{width:3.4rem;flex-shrink:0}
.skel-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-1)}
.skel-tile{background:var(--n50);padding:1.35rem 1.5rem}
@media(max-width:760px){.skel-tiles{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.skel-tbl .skel-row{animation:none}}

/* ==================================================================
   Blueprint Futurism — API product page, embedded checkout, and a
   shared architectural design language (deep-ink surfaces, blueprint
   grid, aurora, gradient CTAs) that the whole site borrows from.
   ================================================================== */
:root{
  --ink-deep:#0e0e15;--ink-deep-2:#15151f;
  --grad-cta:linear-gradient(120deg,#4a63c7,#6b82db 45%,#59b3d4);
  --grad-aurora:radial-gradient(600px 320px at 78% -12%,rgba(86,116,225,.42),transparent 62%),radial-gradient(520px 300px at 8% 118%,rgba(89,179,212,.26),transparent 60%);
  --bp-grid:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
  --shadow-lift:0 24px 60px -26px rgba(24,23,31,.28);
}
.btn.grad,.cta-primary.grad,.price-cta.grad{background:var(--grad-cta);color:#fff;border:none}
.btn.grad:hover,.price-cta.grad:hover{filter:brightness(1.07);color:#fff}

/* deep-ink architectural hero (pricing + welcome share it) */
.price-hero,.co-return .welcome{position:relative;overflow:hidden}
.price-hero{background:var(--ink-deep);color:#fff;padding:6rem 0 5rem;border-radius:var(--radius)}
.price-hero .sec-pad{position:relative;z-index:2}
.price-hero::before{content:"";position:absolute;inset:0;background-image:var(--bp-grid);background-size:46px 46px;-webkit-mask-image:radial-gradient(ellipse 85% 70% at 28% -10%,#000,transparent 76%);mask-image:radial-gradient(ellipse 85% 70% at 28% -10%,#000,transparent 76%)}
.price-hero::after{content:"";position:absolute;inset:0;background:var(--grad-aurora);pointer-events:none}
.price-hero .stag{color:#a7b1d4;margin-bottom:1.1rem}
.price-hero .stag .sl{color:#5674e1}
.price-h1{font-size:var(--h1);line-height:1.02;letter-spacing:-.02em;max-width:16ch;margin-bottom:1.4rem}
.price-sub{color:#c9c9d2;font-size:var(--text-lg);max-width:52ch;line-height:1.5}
/* pricing hero: text beside a sample API call so the dark band isn't half-empty */
.price-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:2.5rem;align-items:center}
.price-hero-demo{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.14);border-radius:calc(var(--radius) * 2);overflow:hidden;box-shadow:0 26px 64px -32px rgba(0,0,0,.7)}
.demo-head{display:flex;align-items:center;gap:.45rem;padding:.7rem 1rem;background:rgba(255,255,255,.04);border-bottom:1px solid rgba(255,255,255,.1)}
.demo-dot{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.22)}
.demo-title{margin-left:.55rem;font-family:var(--mono);font-size:.68rem;color:#a7b1d4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.demo-code{margin:0;padding:1.1rem 1.15rem;font-family:var(--mono);font-size:.72rem;line-height:1.7;color:#dce0ee;white-space:pre-wrap;word-break:break-word;overflow-x:auto}
.demo-code .c{color:#7a809a}.demo-code .k{color:#8fa0e8}.demo-code .s{color:#7fd6c2}.demo-code .n{color:#59b3d4}
@media(max-width:860px){.price-hero-grid{grid-template-columns:1fr}.price-hero-demo{display:none}}

/* pricing cards */
.price-sec{padding-top:3.25rem}
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;align-items:start}
.price-card{position:relative;background:var(--n50);border:1px solid var(--border);border-radius:calc(var(--radius) * 2);padding:2.1rem 1.9rem;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s;display:flex;flex-direction:column}
.price-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift)}
.price-card.featured{background:linear-gradient(var(--n50),var(--n50)) padding-box,var(--grad-cta) border-box;border:1.5px solid transparent;box-shadow:0 26px 70px -28px rgba(86,116,225,.5);transform:translateY(-10px)}
.price-card.featured:hover{transform:translateY(-14px)}
.price-badge{position:absolute;top:-.7rem;left:1.9rem;background:var(--grad-cta);color:#fff;font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:1px;padding:.3rem .7rem;border-radius:var(--radius)}
.price-plan{font-size:var(--h4);font-weight:600;letter-spacing:-.01em}
.price-tag{color:var(--n600);font-size:var(--text-sm);margin:.35rem 0 1.4rem;min-height:2.4em;line-height:1.35}
.price-cost{display:flex;align-items:baseline;gap:.15rem;margin-bottom:.4rem}
.price-cur{font-size:1.4rem;font-weight:500;color:var(--n900);align-self:flex-start;margin-top:.3rem}
.price-amt{font-size:3.1rem;font-weight:600;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.price-per{color:var(--n600);font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.5px}
.price-rpm{font-size:var(--text-main);color:var(--n600);padding-bottom:1.5rem;border-bottom:1px solid var(--n200);margin-bottom:1.4rem}
.price-rpm b{color:var(--n900);font-weight:600}
.price-cta{width:100%;height:3rem;border-radius:var(--radius);background:var(--n900);color:var(--n50);font-family:var(--mono);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.5px;border:none;cursor:pointer;transition:all .2s}
.price-cta:hover{background:#18171fcc}
.price-cta:disabled{opacity:.55;cursor:default}
.price-feat{list-style:none;padding:0;margin:1.5rem 0 0;display:flex;flex-direction:column;gap:.7rem}
.price-feat li{position:relative;padding-left:1.6rem;color:var(--n900);font-size:var(--text-main);line-height:1.4}
.price-feat li::before{content:"";position:absolute;left:0;top:.05rem;width:1.05rem;height:1.05rem;border-radius:50%;background:var(--lavender-lt);
  -webkit-mask:no-repeat center/.62rem url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  mask:no-repeat center/.62rem url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
.price-card.featured .price-feat li::before{background:var(--grad-cta)}
.free-form{display:flex;flex-direction:column;gap:.6rem}
.free-email{height:3rem;padding:0 1rem;border:1px solid var(--border);border-radius:var(--radius);font-family:var(--mono);font-size:var(--text-sm);outline:none}
.free-email:focus{border-color:var(--n900)}
.free-msg{font-size:var(--text-sm);color:var(--n600)}.free-msg.ok{color:#26694a}
.cta-note{font-size:var(--text-sm);color:var(--n600);margin-top:.6rem;line-height:1.4}

.price-trust{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border)}
.price-trust>div{font-size:var(--text-sm);color:var(--n600);line-height:1.5}
.price-trust b{display:block;font-family:var(--mono);text-transform:uppercase;letter-spacing:.5px;font-size:.66rem;color:var(--n900);margin-bottom:.35rem}

/* embedded checkout */
.checkout{padding:2.5rem 0 4rem}
.back-link{font-family:var(--mono);font-size:var(--text-sm);color:var(--n600);text-transform:uppercase;letter-spacing:.5px}
.back-link:hover{color:var(--blue)}
.checkout-grid{display:grid;grid-template-columns:22rem 1fr;gap:2.5rem;margin-top:1.75rem;align-items:start}
.checkout-summary{position:sticky;top:6rem}
.co-plan{font-size:var(--h3);font-weight:600;margin:.4rem 0 .8rem}
.co-tag{color:var(--n600);font-size:var(--text-main);margin:.6rem 0 1.2rem;line-height:1.4}
.co-secure{margin-top:1.5rem;font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.5px;color:var(--n600)}
.checkout-panel{background:var(--n50);border:1px solid var(--border);border-radius:calc(var(--radius) * 2);padding:1.5rem;box-shadow:var(--shadow-1)}
#co-mount{min-height:6rem}

/* welcome / key reveal */
.co-return{padding-top:3rem}
.welcome{background:var(--ink-deep);color:#fff;border-radius:calc(var(--radius) * 2);padding:3.5rem 3rem;max-width:52rem;margin:0 auto;position:relative;overflow:hidden}
.welcome::after{content:"";position:absolute;inset:0;background:var(--grad-aurora);pointer-events:none}
.welcome>*{position:relative;z-index:2}
.wl-check{width:3rem;height:3rem;border-radius:50%;background:var(--grad-cta);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:1.5rem}
.welcome .stag{color:#a7b1d4}.welcome .stag .sl{color:#5674e1}
.welcome .price-h1{font-size:var(--h2);margin-bottom:1rem}
.wl-sub{color:#c9c9d2;font-size:var(--text-main);max-width:52ch;line-height:1.5;margin-bottom:1.5rem}
.key-box{display:flex;align-items:center;gap:.75rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);padding:.85rem 1rem;margin:1rem 0}
.key-box code{font-family:var(--mono);font-size:.82rem;color:#fff;word-break:break-all;flex:1}
.key-box .copy{flex-shrink:0;background:rgba(255,255,255,.12);color:#fff;border:none;border-radius:var(--radius);padding:.4rem .7rem;font-family:var(--mono);font-size:.66rem;text-transform:uppercase;cursor:pointer}
.key-box .copy.ok{background:#26694a}
.h5{font-family:var(--mono);font-size:.64rem;text-transform:uppercase;letter-spacing:1px;color:var(--n600);margin:1.5rem 0 .5rem}
.welcome .h5{color:#a7b1d4}
.code-block2{background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);padding:1rem 1.15rem;font-family:var(--mono);font-size:.74rem;line-height:1.7;color:#e6e6ee;white-space:pre-wrap;word-break:break-word;margin-bottom:1.5rem}
.wl-use{margin:.5rem 0}
.notice{border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;background:var(--n50)}
.notice-t{font-weight:600;margin-bottom:.4rem}.notice-m{color:var(--n600);font-size:var(--text-main);line-height:1.5}

@media(max-width:600px){
  .price-hero{padding:3.6rem 0 3rem}
  .price-h1{font-size:2.7rem;line-height:1.05;max-width:none}
  .price-sub{font-size:var(--text-main)}
  .price-amt{font-size:2.7rem}
  .welcome .price-h1{font-size:2rem}
}
@media(max-width:900px){
  .pricing-grid{grid-template-columns:1fr;max-width:26rem;margin:0 auto}
  .price-card.featured{transform:none}
  .price-card.featured:hover{transform:translateY(-4px)}
  .price-trust{grid-template-columns:1fr}
  .checkout-grid{grid-template-columns:1fr}
  .checkout-summary{position:static}
  .welcome{padding:2.5rem 1.5rem}
}

/* ==================================================================
   Scroll-reveal — fade-up as elements enter view, matching the
   Blueprint family (solentic / ccledger / theblueprint.xyz).
   ================================================================== */
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transition-delay:var(--rd,0ms)}
  .reveal.revealed{opacity:1;transform:none}
}

/* self-transfer / reward-collection arrow in the flow cell */
.flow-line .selfarrow{color:var(--teal-text,#2c7d9c);font-weight:600}

/* ==================================================================
   Validator status card + role badges (party page)
   ================================================================== */
.val-badge-wrap{display:inline-flex;gap:.4rem;flex-wrap:wrap;vertical-align:middle;margin-left:.6rem}
.rolebadge{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.6px;
  background:var(--grad-cta);color:#fff;border-radius:var(--radius);padding:.28rem .6rem;white-space:nowrap;vertical-align:middle}
.val-card{border-left:3px solid var(--n300)}
.val-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}
.val-dot{width:10px;height:10px;border-radius:50%;background:var(--n300);flex-shrink:0}
.val-status{font-family:var(--mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.6px;font-weight:500}
.val-sub{font-size:var(--text-sm);color:var(--n600)}
.val-roles{margin-left:auto;font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.6px;color:var(--n600)}
.val-note{margin-top:.9rem;font-family:var(--mono);font-size:.62rem;color:var(--n600);letter-spacing:.2px}
.val-kv{grid-template-columns:minmax(9rem,auto) 1fr}
/* status colours — dot + label + left rule */
.val-active{border-left-color:#4caf6d}.val-active .val-dot{background:#4caf6d;box-shadow:0 0 0 4px #4caf6d22;animation:pulse 2s infinite}.val-active .val-status{color:#2f8f57}
.val-lagging{border-left-color:#e8b45a}.val-lagging .val-dot{background:#e8b45a}.val-lagging .val-status{color:#b5872f}
.val-stale{border-left-color:#e0873a}.val-stale .val-dot{background:#e0873a}.val-stale .val-status{color:#c06f28}
.val-inactive{border-left-color:#c0564e}.val-inactive .val-dot{background:#c0564e}.val-inactive .val-status{color:#a8443c}
.val-unknown .val-dot{background:var(--n600)}.val-unknown .val-status{color:var(--n600)}
.val-no_network_rewards{border-left-color:#2c7d9c}.val-no_network_rewards .val-dot{background:#2c7d9c;box-shadow:0 0 0 4px #2c7d9c22;animation:pulse 2s infinite}.val-no_network_rewards .val-status{color:#2c7d9c}
.val-idle{border-left-color:#2c7d9c}.val-idle .val-dot{background:#2c7d9c;box-shadow:0 0 0 4px #2c7d9c22;animation:pulse 2s infinite}.val-idle .val-status{color:#2c7d9c}
@media(max-width:560px){.val-roles{margin-left:0;flex-basis:100%}.rolebadge{font-size:.55rem}}

/* validator lifetime-earnings hero (inside the status card) */
.val-hero{margin:.25rem 0 1rem;padding:1rem 1.15rem;background:var(--n100);border:1px solid var(--border);border-radius:var(--radius)}
.val-hero-v{font-size:var(--text-xxl);font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}
.val-hero-v .unit{font-size:.42em;color:var(--n600);font-weight:400;letter-spacing:0;margin-left:.15rem}
.val-hero-l{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.6px;color:var(--n600);margin-top:.5rem}
.val-loading{display:flex;align-items:center;gap:.85rem;padding:1.5rem .3rem .6rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.02em}
.val-loading .spinner{transform:scale(.6);transform-origin:left center;flex-shrink:0}
/* validator split layout: reward-history chart (left) + status (right) */
.val-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-1);margin-top:.25rem;border-left:3px solid var(--n300)}
.val-layout.val-active{border-left-color:#3f9e6d}
.val-layout.val-inactive{border-left-color:#c0564e}
.val-viz,.val-main{background:var(--n50);padding:1.2rem 1.35rem;min-width:0}
.val-viz-h{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:var(--n900);margin-bottom:.9rem;display:flex;align-items:baseline;gap:.5rem}
.val-viz-t{margin-left:auto;font-size:.82rem;color:var(--blue);letter-spacing:0}
.val-chart-svg{width:100%;height:auto;display:block}
.val-viz-legend{display:flex;gap:1.2rem;margin-top:.6rem;font-family:var(--mono);font-size:.6rem;color:var(--n600)}
.val-viz-legend i{display:inline-block;vertical-align:middle;margin-right:.3rem}
.val-viz-legend .lg-line{width:12px;height:2px;background:#5674e1}
.val-viz-legend .lg-bar{width:7px;height:9px;background:#59b3d4;opacity:.6}
.val-viz-empty{padding:2.2rem 1rem;text-align:center;font-size:.8rem}
.val-main .val-hero{margin-top:0}
@media(max-width:760px){.val-layout{grid-template-columns:1fr}}

/* ------------------------------------------------- featured apps analytics */
.feat-top{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.6rem}
.apps-stats{display:flex;gap:2.4rem;flex-wrap:wrap}
.apps-stat{display:flex;flex-direction:column;line-height:1}
.apps-stat .n{font-family:var(--mono);font-size:1.85rem;font-weight:400;color:var(--n900);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.apps-stat .l{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.12em;color:var(--n600);margin-top:.45rem}
.feat-toggle{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--n50)}
.feat-toggle button{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;padding:.5rem .95rem;background:none;border:none;border-right:1px solid var(--border);color:var(--n600);cursor:pointer;transition:background .15s,color .15s}
.feat-toggle button:last-child{border-right:none}
.feat-toggle button:hover{color:var(--n900)}
.feat-toggle button.active{background:var(--n900);color:#fff}
.feat-charts{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:1.6rem;box-shadow:var(--shadow-1)}
.feat-chart{background:var(--n50);padding:1.3rem 1.4rem 1.1rem}
.feat-chart-h{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:var(--n900);margin-bottom:1rem}
.feat-chart-empty{padding:2.5rem 1rem;text-align:center;font-size:.8rem}
.donut-wrap{display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap}
.donut-svg{width:148px;height:148px;flex-shrink:0}
.donut-c1{text-anchor:middle;font-family:var(--mono);font-size:24px;font-weight:600;fill:var(--n900)}
.donut-c2{text-anchor:middle;font-family:var(--mono);font-size:7px;text-transform:uppercase;letter-spacing:1px;fill:var(--n600)}
.donut-legend{list-style:none;flex:1;min-width:8.5rem;font-family:var(--mono);font-size:.64rem;display:flex;flex-direction:column;gap:.3rem}
.donut-legend li{display:flex;align-items:center;gap:.45rem}
.lg-dot{width:8px;height:8px;flex-shrink:0}
.lg-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--n900)}
.lg-pct{color:var(--n600);font-variant-numeric:tabular-nums}
.sbar-svg{width:100%;height:auto;display:block}
.ax-grid{stroke:var(--n200);stroke-width:1}
.ax-y,.ax-x{font-family:var(--mono);font-size:8px;fill:var(--n600)}
.ax-y{text-anchor:end}.ax-x{text-anchor:middle}
.feat-tbl-bar{display:flex;align-items:center;gap:1rem;margin-bottom:.9rem;flex-wrap:wrap}
.apps-search{width:min(20rem,100%);height:2.6rem;padding:0 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--n50);font-family:var(--mono);font-size:var(--text-sm);color:var(--n900);outline:none;transition:border-color .18s,box-shadow .18s}
.apps-search:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(86,116,225,.12)}
.apps-search::placeholder{color:var(--n600)}
.feat-note{font-family:var(--mono);font-size:.66rem;margin-left:auto}
.feat-wrap{overflow-x:auto}
.feat-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}
.feat-table thead th{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;color:var(--n600);text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--n100)}
.feat-table th.num,.feat-table td.num{text-align:right;font-variant-numeric:tabular-nums}
.feat-table th.srt{cursor:pointer;user-select:none}
.feat-table th.srt:hover{color:var(--n900)}
.feat-table th.srt::after{content:"↕";opacity:.35;margin-left:.3rem}
.feat-table th.srt-desc::after{content:"↓";opacity:.9}
.feat-table th.srt-asc::after{content:"↑";opacity:.9}
.feat-rank{width:2.4rem;color:var(--n600);font-family:var(--mono);font-size:.72rem;text-align:left;font-variant-numeric:tabular-nums}
.feat-table td.feat-rank,.feat-table th.feat-rank{padding-left:.2rem}
.feat-row{cursor:pointer;transition:background .13s}
.feat-row td{padding:.6rem .9rem;border-bottom:1px solid var(--border);vertical-align:middle}
.feat-row:hover{background:var(--n100)}
.feat-row:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.feat-app{display:flex;align-items:center;gap:.7rem;min-width:11rem}
.feat-idn{flex-shrink:0;display:inline-flex;line-height:0}
.feat-idn .idn{width:26px;height:26px}
.feat-nm{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.feat-name{font-weight:600;color:var(--n900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.feat-handle{font-size:.6rem;color:var(--n600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:14rem}
.feat-rew{font-weight:600;color:var(--n900);white-space:nowrap}
.app-cat{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.05em;color:var(--blue);white-space:nowrap}
.feat-share{width:8.5rem}
.feat-bar{display:block;height:6px;background:var(--n200);border-radius:1px;overflow:hidden}
.feat-bar i{display:block;height:100%;background:var(--grad-cta);border-radius:1px}
.feat-pending{margin-top:1rem;font-size:.72rem;font-family:var(--mono);text-align:center}
@media(max-width:760px){.feat-charts{grid-template-columns:1fr}.feat-note{margin-left:0}.feat-top{align-items:flex-start}}

/* ============================== accounts / auth / dashboard ============================== */
.nav-links{margin-left:auto}
.nav-dd{position:relative}
.nav-dd-btn{font-family:var(--mono);font-size:var(--text-sm);text-transform:uppercase;color:var(--n900);background:none;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;padding:0}
.nav-caret{display:inline-flex;align-items:center;color:var(--blue);margin-left:.3rem;transition:transform .2s ease}
.nav-dd:hover .nav-caret,.nav-dd:focus-within .nav-caret{transform:rotate(180deg)}
.nav-dd-btn:hover{color:var(--blue)}
.nav-dd-menu{position:absolute;top:calc(100% + .85rem);left:50%;transform:translateX(-50%) translateY(-6px);min-width:11rem;background:var(--n50);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-2);padding:.4rem;opacity:0;visibility:hidden;transition:opacity .16s,transform .16s;z-index:120;display:flex;flex-direction:column;gap:.1rem}
.nav-dd:hover .nav-dd-menu,.nav-dd:focus-within .nav-dd-menu{opacity:1;visibility:visible;transform:translateX(-50%)}
.nav-dd-menu::before{content:"";position:absolute;bottom:100%;left:0;right:0;height:.85rem}
.nav-dd-menu a{padding:.5rem .7rem;border-radius:calc(var(--radius) - 1px);white-space:nowrap;font-size:.72rem}
.nav-dd-menu a:hover{background:var(--n100)}
.nav-acct{display:flex;align-items:center;margin-left:1.6rem;position:relative;flex-shrink:0}
a.acct-signin{padding:.55rem 1.1rem}
.acct-btn{width:2.3rem;height:2.3rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--n50);cursor:pointer;padding:0;overflow:hidden;display:flex;align-items:center;justify-content:center;transition:border-color .15s,box-shadow .15s}
.acct-btn:hover{border-color:var(--n600)}
.nav-acct.open .acct-btn{border-color:var(--blue);box-shadow:0 0 0 3px rgba(86,116,225,.14)}
.acct-btn .acct-img{width:100%;height:100%;object-fit:cover}
.acct-btn .acct-idn,.acct-btn .acct-idn .idn-lg,.acct-btn .acct-idn .idn{width:2.3rem;height:2.3rem;display:block;border-radius:0}
.acct-menu{position:absolute;top:calc(100% + .7rem);right:0;min-width:15rem;background:var(--n50);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-2);padding:.5rem;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .16s,transform .16s;z-index:130;display:flex;flex-direction:column;gap:.1rem}
.nav-acct.open .acct-menu{opacity:1;visibility:visible;transform:none}
.acct-hd{display:flex;align-items:center;gap:.7rem;padding:.5rem .6rem .8rem;border-bottom:1px solid var(--border);margin-bottom:.4rem}
.acct-hd .acct-img{width:2.4rem;height:2.4rem;border-radius:var(--radius);object-fit:cover}
.acct-hd .acct-idn,.acct-hd .acct-idn .idn-lg{width:2.4rem;height:2.4rem;display:block}
.acct-hd-t{min-width:0}
.acct-nm{font-weight:600;font-size:.82rem;color:var(--n900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:11rem}
.acct-pl{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;color:var(--blue);margin-top:.15rem}
.acct-menu a,.acct-out{text-align:left;padding:.55rem .6rem;border-radius:calc(var(--radius) - 1px);font-family:var(--mono);font-size:.72rem;color:var(--n900);background:none;border:none;cursor:pointer;width:100%;display:block}
.acct-menu a:hover,.acct-out:hover{background:var(--n100)}
.acct-out{color:var(--neg);border-top:1px solid var(--border);margin-top:.3rem}
.nav-mob-acct{display:none}

.auth-wrap{display:flex;justify-content:center;padding:4rem 1.5rem 6rem;min-height:58vh}
.auth-card{width:100%;max-width:26rem;background:var(--n50);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:2.6rem 2.4rem;text-align:center}
.auth-mark{width:3.4rem;height:3.4rem;margin:0 auto 1.4rem}
.auth-mark .idn-lg{width:3.4rem;height:3.4rem}
.auth-h{font-size:1.5rem;font-weight:600;letter-spacing:-.02em;color:var(--n900);margin-bottom:.6rem}
.auth-sub{font-size:.86rem;color:var(--n600);line-height:1.55;margin-bottom:1.6rem}
.auth-sub em{color:var(--n900);font-style:normal;font-weight:600}
.auth-btn{width:100%;height:3rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--n50);color:var(--n900);font-family:var(--mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:all .18s;margin-bottom:.7rem}
.auth-btn:hover:not(:disabled){border-color:var(--n900)}
.auth-btn.primary{background:var(--n900);color:#fff;border-color:var(--n900)}
.auth-btn.primary:hover:not(:disabled){box-shadow:var(--shadow-2)}
.auth-btn:disabled{opacity:.5;cursor:not-allowed}
.auth-ic{font-size:1rem}
.auth-div{display:flex;align-items:center;gap:.8rem;margin:1.2rem 0;color:var(--n600);font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.1em}
.auth-div::before,.auth-div::after{content:"";flex:1;height:1px;background:var(--border)}
.auth-in{width:100%;height:2.8rem;padding:0 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--n50);font-size:.8rem;outline:none;margin-bottom:.7rem;transition:border-color .15s}
.auth-in:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(86,116,225,.12)}
.auth-msg{min-height:1.2rem;font-family:var(--mono);font-size:.68rem;margin-top:.4rem}
.auth-msg.ok{color:var(--n600)}.auth-msg.err{color:var(--neg)}
.auth-note{padding:.6rem .8rem;border-radius:var(--radius);font-size:.72rem;margin-bottom:1rem;background:var(--n100)}
.auth-note.err{color:var(--neg)}
.auth-fine{font-size:.66rem;color:var(--n600);margin-top:1.3rem;line-height:1.5}

.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-1);margin-bottom:2rem}
.dash-card{background:var(--n50);padding:1.4rem 1.5rem;min-width:0}
.dash-id{display:flex;align-items:center;gap:.9rem}
.dash-av{width:2.8rem;height:2.8rem;flex-shrink:0}
.dash-av img,.dash-av .idn-lg{width:2.8rem;height:2.8rem;border-radius:var(--radius);object-fit:cover}
.dash-nm{font-weight:600;color:var(--n900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-em{font-size:.66rem;color:var(--n600);margin-top:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-k{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--n600)}
.dash-v{font-size:1.9rem;font-weight:400;font-family:var(--mono);color:var(--n900);margin-top:.4rem;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.dash-sub{font-size:.66rem;color:var(--n600);margin-top:.3rem}
.dash-cta{display:inline-block;margin-top:.6rem;font-family:var(--mono);font-size:.66rem;color:var(--blue)}
.dash-sec-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;gap:1rem}
.dash-keys td{padding:.7rem .9rem}
.dk-mask{color:var(--n600)}
.dk-act{text-align:right}
.dk-del{font-family:var(--mono);font-size:.64rem;text-transform:uppercase;color:var(--neg);background:none;border:1px solid transparent;cursor:pointer;padding:.25rem .5rem;border-radius:var(--radius)}
.dk-del:hover{border-color:var(--neg)}
.key-reveal{margin:1rem 0;padding:1rem 1.2rem;background:var(--lavender-lt);border:1px solid var(--lavender);border-radius:var(--radius)}
.kr-h{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:var(--n900);margin-bottom:.6rem}
.dash-settings{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.ds-row{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.1rem 1.4rem;background:var(--n50);border-bottom:1px solid var(--border)}
.ds-row:last-child{border-bottom:none}
.ds-t{font-weight:600;color:var(--n900);font-size:.86rem}
.ds-d{font-size:.72rem;margin-top:.2rem;max-width:34rem}
.ds-danger{color:var(--neg);border-color:var(--neg)!important}
@media(max-width:900px){.nav-mob-acct{display:block}}
@media(max-width:600px){.ds-row{flex-direction:column;align-items:flex-start;gap:.7rem}}

/* dashboard usage analytics */
.usage-card{display:grid;grid-template-columns:1fr 15rem;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-1);margin-bottom:2rem}
.usage-chart{background:var(--n50);padding:1.2rem 1.3rem;min-width:0}
.usage-bykey{background:var(--n50);padding:1.2rem 1.3rem;display:flex;flex-direction:column;gap:.6rem}
.ubk-h{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--n600);margin-bottom:.2rem}
.ubk-row{display:grid;grid-template-columns:minmax(0,6.5rem) 1fr auto;gap:.55rem;align-items:center}
.ubk-l{font-size:.7rem;color:var(--n900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ubk-bar{height:6px;background:var(--n100);border-radius:2px;overflow:hidden}
.ubk-bar>span{display:block;height:100%;background:linear-gradient(90deg,#5674e1,#59b3d4)}
.ubk-v{font-size:.66rem;color:var(--n600);font-variant-numeric:tabular-nums}
.ua-bar{fill:#59b3d4;opacity:.42}
@media(max-width:760px){.usage-card{grid-template-columns:1fr}}
.dk-ren{font-family:var(--mono);font-size:.64rem;text-transform:uppercase;color:var(--n600);background:none;border:1px solid transparent;cursor:pointer;padding:.25rem .5rem;border-radius:var(--radius);margin-right:.2rem}
.dk-ren:hover{border-color:var(--n600);color:var(--n900)}
.cf-box{margin:0 0 .7rem;min-height:1px}
.oauth-row{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-bottom:.2rem}
.oauth-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:2.7rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--n50);color:var(--n900);font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;transition:border-color .15s,background .15s}
.oauth-btn:hover{border-color:var(--n900);background:var(--n100)}
.oauth-ic{display:inline-flex;align-items:center}
/* two-factor auth */
.tfa-panel{display:flex;gap:1.1rem;margin-top:.9rem;padding:1rem;background:var(--n100);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap}
.tfa-qr{width:150px;height:150px;border-radius:var(--radius);background:#fff;flex-shrink:0}
.tfa-steps{flex:1;min-width:14rem;display:flex;flex-direction:column;gap:.6rem}
.tfa-step{font-size:.76rem;color:var(--n900);line-height:1.4}
.tfa-secret{display:inline-block;align-self:flex-start;background:var(--n50);border:1px solid var(--border);border-radius:var(--radius);padding:.4rem .6rem;font-size:.8rem;letter-spacing:.05em;color:var(--n900)}
.tfa-verify{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.tfa-verify .auth-in{margin-bottom:0;max-width:9rem}
.tfa-verify .btn{white-space:nowrap}
.tfa-msg{font-family:var(--mono);font-size:.68rem;min-height:1rem}
.tfa-msg.err{color:var(--neg)}
.tfa-code-in{text-align:center;letter-spacing:.3em;font-size:1.05rem}
.ds-on{font-family:var(--mono);font-size:.56rem;background:#3f9e6d;color:#fff;padding:.12rem .38rem;border-radius:3px;vertical-align:middle;letter-spacing:.08em}
/* canton block cluster — keyed to transparent, feathered into the hero right */
.hero{position:relative}
.hero .hero-content{position:relative;z-index:2}
.hero-blocks{position:absolute;right:1.5%;top:4%;width:min(28rem,30%);height:auto;z-index:1;pointer-events:none;opacity:.95;
  -webkit-mask-image:radial-gradient(72% 68% at 50% 46%,#000 52%,transparent 100%);
  mask-image:radial-gradient(72% 68% at 50% 46%,#000 52%,transparent 100%)}
@media(max-width:900px){.hero-blocks{display:none}}
/* tx-history stacked cubes */
.nb-cubes{width:100%}
.nb-cubes-svg{width:100%;height:auto;display:block}
