:root {
  --paper:#efeadf;
  --paper2:#e8e2d4;
  --paper3:#ddd6c6;
  --ink:#151515;
  --ink2:#3a3833;
  --ink3:#6b675e;
  --green:#3f6b4f;
  --greenSoft:#dfe6dc;
  --rule:#151515;
  --hair:rgba(21,21,21,.18);
  --serif:"Old Standard TT",Georgia,"Times New Roman",serif;
  --sans:"Libre Franklin",system-ui,-apple-system,Segoe UI,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
}
* {
  box-sizing: border-box;
}
[hidden] {
  display: none !important;
}
html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 400 16px/1.6 var(--sans);
  overflow-x: hidden;
  transition: background-color .8s var(--ease);
}
body.npTone2 {
  background: var(--paper2);
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: .5;
  background-image:
    repeating-linear-gradient(
      0deg,
      rgba(21, 21, 21, .018) 0 1px,
      transparent 1px 3px),
    repeating-linear-gradient(
      90deg,
      rgba(21, 21, 21, .012) 0 1px,
      transparent 1px 4px);
}
main,
header,
footer {
  position: relative;
  z-index: 1;
}
a {
  color: inherit;
}
abbr[title] {
  text-decoration: underline dotted rgba(21, 21, 21, .5);
  text-underline-offset: 3px;
  cursor: help;
}
h1,
h2,
h3 {
  font-family: var(--serif);
  font-weight: 700;
  line-height: 1.08;
  margin: 0;
}
p {
  margin: 0;
}
button,
input,
select {
  font: inherit;
  color: inherit;
}
:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 3px;
  transition: outline-offset .25s var(--ease);
}
.npSr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}
.npSkip {
  position: absolute;
  left: -9999px;
  top: 8px;
  background: var(--ink);
  color: var(--paper);
  padding: 8px 12px;
  z-index: 100;
}
.npSkip:focus {
  left: 8px;
}
.npMast {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(239, 234, 223, .94);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  padding: 0 clamp(16px, 4vw, 48px);
}
.npMastTop {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font: 500 11px/1 var(--sans);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink3);
  padding: 8px 0 6px;
  border-bottom: 1px solid var(--hair);
}
.npEdition b {
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  font-weight: 600;
}
.npMastBar {
  display: flex;
  align-items: center;
  gap: 20px;
  min-height: 58px;
}
.npBrand {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
}
.npBrandMark {
  width: 28px;
  height: 28px;
}
.npBrandWord {
  font: 700 28px/1 var(--serif);
  letter-spacing: -.01em;
}
.npNav {
  flex: 1;
  min-width: 0;
  display: flex;
  justify-content: center;
}
.npNavList {
  display: flex;
  gap: 2px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.npNavList a {
  display: block;
  padding: 8px 11px;
  text-decoration: none;
  font: 500 13px/1 var(--sans);
  letter-spacing: .04em;
  position: relative;
}
.npNavList a::after {
  content: "";
  position: absolute;
  left: 11px;
  right: 11px;
  bottom: 3px;
  height: 1px;
  background: var(--ink);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .45s var(--ease);
}
.npNavList a:hover::after,
.npNavList a:focus-visible::after {
  transform: scaleX(1);
}
.npMenuBtn {
  display: none;
}
.npMastRight {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
  flex-shrink: 0;
}
.npXLink {
  display: inline-flex;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ink);
  border-radius: 2px;
}
.npXLink svg {
  width: 15px;
  height: 15px;
}
.npMastRule {
  height: 4px;
  border-top: 2px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  transform-origin: left;
}
.x0e4 {
  position: relative;
}
.x0e4-btn {
  border: 1.5px solid var(--ink);
  background: var(--ink);
  color: var(--paper);
  padding: 9px 14px;
  border-radius: 2px;
  font: 600 13px/1 var(--sans);
  letter-spacing: .03em;
  cursor: pointer;
  transition: transform .2s var(--ease), background-color .3s;
}
.x0e4-btn:hover {
  background: var(--green);
  border-color: var(--green);
}
.x0e4-btn:active {
  transform: translateY(1px) scale(.98);
}
.x0e4-btn.is-on {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--serif);
  font-weight: 700;
}
.x0e4-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  z-index: 200;
  min-width: 250px;
  max-width: min(300px, calc(100vw - 32px));
  background: var(--paper);
  border: 1.5px solid var(--ink);
  box-shadow: 6px 6px 0 rgba(21, 21, 21, .12);
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.x0e4-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  text-align: left;
  background: none;
  border: 0;
  border-bottom: 1px solid var(--hair);
  padding: 9px 6px;
  font: 500 14px/1.2 var(--sans);
  text-decoration: none;
  cursor: pointer;
}
.x0e4-item:hover {
  background: var(--greenSoft);
}
.x0e4-item img {
  width: 18px;
  height: 18px;
}
.x0e4-addr {
  font:
    500 12px/1.4 ui-monospace,
    Menlo,
    monospace;
  word-break: break-all;
  padding: 4px 6px;
}
.x0e4-bal {
  font: 700 15px/1.3 var(--serif);
  padding: 2px 6px 8px;
  border-bottom: 1px solid var(--hair);
}
.x0e4-note {
  font-size: 12px;
  color: var(--ink3);
  padding: 6px;
}
.npBtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 20px;
  border-radius: 2px;
  border: 1.5px solid var(--ink);
  font: 600 14px/1 var(--sans);
  letter-spacing: .03em;
  text-decoration: none;
  cursor: pointer;
  transition:
    transform .25s var(--ease),
    background-color .3s,
    color .3s;
  will-change: transform;
  white-space: nowrap;
}
.npBtnInk {
  background: var(--ink);
  color: var(--paper);
}
.npBtnInk:hover {
  background: var(--green);
  border-color: var(--green);
}
.npBtnLine {
  background: transparent;
}
.npBtnLine:hover {
  background: var(--ink);
  color: var(--paper);
}
.npBtn:active {
  transform: translateY(1px) scale(.98);
}
.npBtnSm {
  padding: 9px 14px;
  font-size: 13px;
}
.npBtn[disabled] {
  opacity: .5;
  cursor: progress;
}
.npFront {
  padding: clamp(28px, 5vw, 64px) clamp(16px, 4vw, 48px) clamp(32px, 5vw, 60px);
}
.npFrontGrid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 56px);
  max-width: 1320px;
  margin: 0 auto;
  align-items: center;
}
.npLead {
  min-width: 0;
  border-right: 1px solid var(--hair);
  padding-right: clamp(0px, 3vw, 40px);
}
.npKicker {
  font: 600 12px/1 var(--sans);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--green);
  margin-bottom: 18px;
}
.npHeadline {
  text-wrap: balance;
  font-size: clamp(38px, 5vw, 72px);
  letter-spacing: -.018em;
  line-height: 1.02;
}
.npHeadline .npW {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
  padding-bottom: .08em;
  margin-bottom: -.08em;
}
.npHeadline .npWi {
  display: inline-block;
}
.npDeck {
  font: 400 clamp(17px, 1.5vw, 20px)/1.55 var(--serif);
  margin-top: 22px;
  max-width: 36em;
  color: var(--ink2);
}
.npDeckSmall {
  font-size: 13px;
  color: var(--ink3);
  margin-top: 10px;
  max-width: 42em;
}
.npCtaRow {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 26px;
}
.npCaChip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
  border: 1px solid var(--ink);
  padding: 6px 6px 6px 12px;
  max-width: 100%;
}
.npCaLabel {
  font: 600 11px/1 var(--sans);
  letter-spacing: .12em;
  text-transform: uppercase;
}
.npCaCode {
  font:
    12px/1.3 ui-monospace,
    Menlo,
    monospace;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.npCopy {
  position: relative;
  border: 1px solid var(--ink);
  background: var(--paper);
  padding: 6px 10px;
  cursor: pointer;
  font: 600 12px/1 var(--sans);
  overflow: hidden;
  min-width: 70px;
}
.npCopy span {
  display: block;
  transition: transform .4s var(--ease), opacity .3s;
}
.npCopyB {
  position: absolute;
  inset: 0;
  display: flex !important;
  align-items: center;
  justify-content: center;
  transform: translateY(110%);
  color: var(--green);
}
.npCopy.isCopied .npCopyA {
  transform: translateY(-110%);
  opacity: 0;
}
.npCopy.isCopied .npCopyB {
  transform: none;
}
.npFigures {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 34px 0 0;
  border-top: 2px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.npFigures div {
  padding: 12px 12px 12px 0;
  min-width: 0;
}
.npFigures div + div {
  border-left: 1px solid var(--hair);
  padding-left: 12px;
}
.npFigures dt {
  font: 500 11px/1.3 var(--sans);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink3);
}
.npFigures dd {
  margin: 6px 0 0;
  font: 700 clamp(22px, 2.4vw, 32px)/1 var(--serif);
  font-variant-numeric: tabular-nums;
}
.npTapeStage {
  margin: 0;
  position: relative;
  min-width: 0;
  aspect-ratio: 1/1.02;
  max-height: 640px;
  border: 1px solid var(--ink);
  background:
    linear-gradient(
      180deg,
      var(--paper),
      var(--paper2));
}
.npTapeStage::before {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid var(--hair);
  pointer-events: none;
}
.npTapeCanvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.npTapeCap {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 10px 16px;
  border-top: 1px solid var(--ink);
  background: var(--paper);
  font: 500 12px/1.3 var(--sans);
  letter-spacing: .04em;
  display: flex;
  align-items: center;
  gap: 8px;
}
.npLiveDot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--green);
  flex-shrink: 0;
  animation: npBeat 2.4s var(--ease) infinite;
}
@keyframes npBeat {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: .35;
    transform: scale(.7);
  }
}
.npSteps {
  max-width: 1320px;
  margin: 0 auto;
  padding: 10px clamp(16px, 4vw, 48px) 56px;
}
.npSectionLabel {
  font: 600 12px/1 var(--sans);
  letter-spacing: .18em;
  text-transform: uppercase;
  text-align: center;
  padding: 12px 0;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.npStepRow {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.npStep {
  padding: 26px 24px;
  min-width: 0;
}
.npStep + .npStep {
  border-left: 1px solid var(--hair);
}
.npStepNo {
  font: italic 400 34px/1 var(--serif);
  color: var(--green);
}
.npStep h3 {
  font-size: 22px;
  margin: 10px 0 8px;
}
.npStep p {
  color: var(--ink2);
  font-size: 15px;
}
.npStepNote {
  text-align: center;
  font: italic 15px/1.4 var(--serif);
  color: var(--ink3);
  border-top: 1px solid var(--hair);
  padding-top: 14px;
}
.npQuotes,
.npDesk,
.npPairing,
.npTwins,
.npSatchel,
.npPlates,
.npGloss,
.npRoad,
.npCoin,
.npFaq {
  max-width: 1320px;
  margin: 0 auto;
  padding: clamp(48px, 7vw, 96px) clamp(16px, 4vw, 48px);
}
.npSecHead {
  border-top: 3px double var(--ink);
  padding-top: 18px;
  margin-bottom: 26px;
  max-width: 860px;
}
.npSecTag {
  font: 600 11px/1 var(--sans);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--green);
  margin-bottom: 12px;
}
.npSecHead h2 {
  font-size: clamp(32px, 4vw, 54px);
  letter-spacing: -.012em;
}
.npWhat {
  margin-top: 14px;
  font: 400 17px/1.5 var(--serif);
  color: var(--ink2);
}
.npWhat b {
  font-family: var(--sans);
  font-size: 13px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ink);
}
.npFine {
  font-size: 13px;
  color: var(--ink3);
  margin-top: 16px;
  max-width: 64em;
}
.npEmpty {
  font: italic 16px/1.5 var(--serif);
  color: var(--ink3);
  padding: 26px 0;
}
.npVerdict {
  font: 400 18px/1.45 var(--serif);
  border-left: 3px solid var(--green);
  padding: 6px 0 6px 14px;
  margin: 6px 0 18px;
}
.npVerdict b {
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--green);
  margin-right: 6px;
}
.npErr {
  border: 1px solid var(--ink);
  padding: 14px 16px;
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: space-between;
  background: var(--paper2);
}
.npForm {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
  margin-bottom: 12px;
}
.npField {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.npField > span {
  font: 600 11px/1 var(--sans);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink3);
}
.npField input,
.npField select {
  border: 1.5px solid var(--ink);
  background: var(--paper);
  padding: 11px 12px;
  border-radius: 2px;
  min-width: 0;
  width: 100%;
  transition: box-shadow .3s var(--ease);
}
.npField input:focus,
.npField select:focus {
  outline: none;
  box-shadow: 0 0 0 3px var(--paper), 0 0 0 5px var(--green);
}
.npGrow {
  flex: 1 1 320px;
}
.npFormPair .npField {
  flex: 1 1 220px;
}
.npFormPair .npFieldSm {
  flex: 0 1 170px;
}
.npFieldSm input,
.npFieldSm select {
  padding: 8px 10px;
}
.npExampleRow {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin: 4px 0 18px;
  font: italic 15px var(--serif);
}
.npBoardBar {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 14px;
}
.npTabs {
  position: relative;
  display: flex;
  border: 1.5px solid var(--ink);
  max-width: 100%;
  overflow-x: auto;
  scrollbar-width: none;
}
.npTab {
  position: relative;
  z-index: 1;
  background: none;
  border: 0;
  padding: 10px 14px;
  font: 600 13px/1 var(--sans);
  cursor: pointer;
  white-space: nowrap;
  transition: color .35s var(--ease);
}
.npTab.isOn {
  color: var(--paper);
}
.npTabInk {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 0;
  background: var(--ink);
  transition: transform .5s var(--ease), width .5s var(--ease);
  z-index: 0;
}
.npBoardCtl {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: flex-end;
}
.npBoard {
  border-top: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
}
.npRow {
  display: grid;
  grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, .8fr) minmax(0, 1fr) minmax(0, .8fr) 96px 36px;
  gap: 12px;
  align-items: center;
  padding: 11px 4px;
  border-bottom: 1px solid var(--hair);
  cursor: pointer;
  transition: background-color .3s;
}
.npRow:hover {
  background: rgba(63, 107, 79, .07);
}
.npRowHead {
  cursor: default;
  font: 600 11px/1 var(--sans);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink3);
  border-bottom: 1px solid var(--ink);
}
.npRowHead:hover {
  background: none;
}
.npNum {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.npTok {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.npMono {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  border: 1px solid var(--ink);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font: 700 11px/1 var(--serif);
  background: var(--paper2);
  overflow: hidden;
}
.npMono img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.npTokTxt {
  min-width: 0;
}
.npTokSym {
  font: 700 16px/1.1 var(--serif);
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.npTokName {
  font-size: 12px;
  color: var(--ink3);
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.npIssuer {
  font-size: 12px;
  letter-spacing: .04em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.npIssuer i {
  font-style: normal;
  display: inline-block;
  border: 1px solid var(--ink);
  padding: 2px 5px;
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-right: 4px;
}
.npIssuer i.isPre {
  border-color: var(--green);
  color: var(--green);
}
.npPrice {
  font: 700 16px/1 var(--serif);
  transition: background-color .9s var(--ease);
}
.npPrice.isFlash {
  background: rgba(63, 107, 79, .22);
}
.npUp {
  color: var(--green);
  font-weight: 600;
}
.npDown {
  color: var(--ink);
  font-weight: 600;
}
.npUp::before {
  content: "\25b2  ";
  font-size: .7em;
}
.npDown::before {
  content: "\25bc  ";
  font-size: .7em;
}
.npSpark {
  width: 96px;
  height: 28px;
  display: block;
}
.npSpark path {
  fill: none;
  stroke-width: 1.4;
}
.npStar {
  background: none;
  border: 0;
  cursor: pointer;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.npStar svg {
  width: 18px;
  height: 18px;
  transition: transform .35s var(--ease);
}
.npStar svg path {
  fill: transparent;
  stroke: var(--ink);
  stroke-width: 1.5;
  transition: fill .3s;
}
.npStar.isOn svg path {
  fill: var(--green);
  stroke: var(--green);
}
.npStar:active svg {
  transform: scale(.8);
}
.npBoardFoot {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: space-between;
  align-items: center;
  margin-top: 14px;
}
.npStamp {
  font: italic 13px var(--serif);
  color: var(--ink3);
}
.npSkel {
  height: 14px;
  border-radius: 2px;
  background:
    linear-gradient(
      90deg,
      var(--paper3) 0%,
      var(--paper2) 40%,
      var(--paper3) 80%);
  background-size: 200% 100%;
  animation: npShimmer 1.4s linear infinite;
}
.npSkelRow {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  gap: 16px;
  padding: 16px 4px;
  border-bottom: 1px solid var(--hair);
}
@keyframes npShimmer {
  from {
    background-position: 200% 0;
  }
  to {
    background-position: -200% 0;
  }
}
.npWire {
  background: var(--ink);
  color: var(--paper);
  margin: 20px 0;
}
.npWirePin {
  max-width: 1320px;
  margin: 0 auto;
  padding: clamp(48px, 7vw, 90px) clamp(16px, 4vw, 48px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(24px, 5vw, 72px);
  align-items: center;
  min-height: 100vh;
}
.npWire .npSecTag {
  color: #a9c3b0;
}
.npWireText h2 {
  font-size: clamp(34px, 4.2vw, 58px);
  margin-bottom: 26px;
}
.npWireRail {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  margin: -8px 0 22px;
  font: 600 11px/1 var(--sans);
  letter-spacing: .14em;
  color: #a9c3b0;
}
.npWireRail::before {
  content: "";
  flex: 1;
  height: 1px;
  background: rgba(239, 234, 223, .25);
}
.npWireRailBar {
  position: absolute;
  left: 0;
  top: 50%;
  height: 2px;
  margin-top: -1px;
  width: calc(100% - 90px);
  background: #8db79a;
  transform-origin: left;
  transform: scaleX(.25);
}
.npWireSteps {
  list-style: none;
  margin: 0;
  padding: 0;
}
.npWireStep {
  border-top: 1px solid rgba(239, 234, 223, .25);
  padding: 16px 0;
  opacity: .38;
  transition: opacity .6s var(--ease);
}
.npWireStep.isOn {
  opacity: 1;
}
.npWireStep h3 {
  font-size: 21px;
  margin-bottom: 6px;
}
.npWireStep p {
  font-size: 15px;
  color: rgba(239, 234, 223, .82);
}
.npWireArt {
  min-width: 0;
}
.npWireSvg {
  width: 100%;
  height: auto;
  display: block;
}
.npWS {
  opacity: 0;
  transform-origin: 220px 170px;
  transition: opacity .7s var(--ease), transform .7s var(--ease);
  transform: scale(.94);
}
.npWS.isOn {
  opacity: 1;
  transform: none;
}
.npWireSvg .npInkLine {
  fill: none;
  stroke: var(--paper);
  stroke-width: 2;
}
.npWireSvg .npInkThin {
  fill: none;
  stroke: rgba(239, 234, 223, .5);
  stroke-width: 1.2;
}
.npWireSvg .npGreenLine {
  fill: none;
  stroke: #8db79a;
  stroke-width: 2.2;
}
.npWireSvg .npThick {
  stroke-width: 3.2;
}
.npSvgTitle {
  font: 700 18px var(--serif);
  fill: var(--paper);
  letter-spacing: .12em;
}
.npSvgSmall {
  font: 500 13px var(--sans);
  fill: rgba(239, 234, 223, .85);
}
.npDeskOut,
.npPairOut,
.npTwinOut,
.npSatOut {
  min-height: 120px;
}
.npSheet {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 28px;
  border-top: 2px solid var(--ink);
  padding-top: 22px;
}
.npSheetHead {
  display: flex;
  gap: 14px;
  align-items: center;
  grid-column: 1/-1;
  flex-wrap: wrap;
}
.npSheetHead .npMono {
  width: 48px;
  height: 48px;
  font-size: 14px;
}
.npSheetTitle {
  min-width: 0;
  flex: 1;
}
.npSheetTitle h3 {
  font-size: clamp(26px, 3vw, 38px);
  overflow-wrap: anywhere;
}
.npSheetTitle code {
  font:
    12px/1.3 ui-monospace,
    Menlo,
    monospace;
  color: var(--ink3);
  word-break: break-all;
}
.npBigPrice {
  font: 700 clamp(30px, 3.4vw, 44px)/1 var(--serif);
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.npBigPrice small {
  display: block;
  font: 600 14px/1.4 var(--sans);
  text-align: right;
  margin-top: 6px;
}
.npChart {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid var(--hair);
  background: var(--paper);
}
.npChart .npGrid {
  stroke: var(--hair);
  stroke-width: 1;
}
.npChart .npLineA {
  fill: none;
  stroke: var(--ink);
  stroke-width: 2;
}
.npChart .npLineB {
  fill: none;
  stroke: var(--green);
  stroke-width: 2;
  stroke-dasharray: none;
}
.npChart .npArea {
  fill: rgba(63, 107, 79, .1);
}
.npChart text {
  font: 500 11px var(--sans);
  fill: var(--ink3);
}
.npChart .npZero {
  stroke: var(--ink);
  stroke-width: 1;
  stroke-dasharray: 3 4;
}
.npFacts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  border-top: 1px solid var(--ink);
}
.npFacts div {
  padding: 10px 8px 10px 0;
  border-bottom: 1px solid var(--hair);
  min-width: 0;
}
.npFacts dt {
  font: 600 10px/1.2 var(--sans);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink3);
}
.npFacts dd {
  margin: 4px 0 0;
  font: 700 17px/1.2 var(--serif);
  overflow-wrap: anywhere;
}
.npPowers {
  grid-column: 1/-1;
}
.npPowers h4 {
  font: 700 20px var(--serif);
  margin: 6px 0 10px;
}
.npPowerList {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 0;
  border-top: 1px solid var(--ink);
}
.npPowerList li {
  padding: 12px 12px 12px 0;
  border-bottom: 1px solid var(--hair);
  min-width: 0;
}
.npPowerList b {
  display: block;
  font: 700 15px/1.3 var(--serif);
}
.npPowerList span {
  font-size: 13px;
  color: var(--ink2);
}
.npPowerList .isLive b::after {
  content: " \b7  on";
  color: var(--green);
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.npPowerList .isOff b::after {
  content: " \b7  off";
  color: var(--ink3);
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.npLinks {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  font-size: 13px;
  grid-column: 1/-1;
}
.npLinks a {
  text-underline-offset: 3px;
}
.npLegend {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  font-size: 13px;
  margin: 10px 0;
}
.npLegend span::before {
  content: "";
  display: inline-block;
  width: 18px;
  height: 3px;
  vertical-align: middle;
  margin-right: 6px;
  background: var(--ink);
}
.npLegend .npLegB::before {
  background: var(--green);
}
.npList {
  border-top: 2px solid var(--ink);
}
.npLRow {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 2.4fr) minmax(0, 1fr);
  gap: 14px;
  padding: 14px 4px;
  border-bottom: 1px solid var(--hair);
  align-items: center;
}
.npLRow h4 {
  font: 700 18px var(--serif);
  margin: 0;
}
.npLRow small {
  display: block;
  color: var(--ink3);
  font-size: 12px;
}
.npChips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}
.npChip {
  border: 1px solid var(--ink);
  padding: 4px 8px;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.npChip b {
  font-family: var(--serif);
}
.npGap {
  font: 700 20px var(--serif);
  text-align: right;
}
.npSatRow {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
}
.npSatTotal {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 16px 4px;
  border-bottom: 2px solid var(--ink);
  font: 700 22px var(--serif);
}
.npPlateGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 3vw, 40px);
}
.npPlate {
  margin: 0;
  border: 1px solid var(--ink);
  padding: 16px;
  background: var(--paper);
  min-width: 0;
}
.npPlate figcaption {
  font: 400 15px var(--serif);
  border-bottom: 1px solid var(--hair);
  padding-bottom: 10px;
  margin-bottom: 10px;
}
.npPlateBox {
  max-width: 420px;
  margin: 0 auto;
}
.npFlow {
  width: 100%;
  height: auto;
  display: block;
}
.npNode rect {
  fill: var(--paper);
  stroke: var(--ink);
  stroke-width: 1.5;
}
.npNodeGreen rect {
  fill: var(--greenSoft);
  stroke: var(--green);
  stroke-width: 2;
}
.npNodeMute rect {
  fill: var(--paper2);
  stroke-dasharray: 5 4;
}
.npNodeT {
  font: 700 15px var(--serif);
  fill: var(--ink);
}
.npNodeS {
  font: 500 11px var(--sans);
  fill: var(--ink3);
}
.npEdge {
  fill: none;
  stroke: var(--ink);
  stroke-width: 1.4;
}
.npEdgeDash {
  stroke-dasharray: 5 5;
}
.npArrHead {
  fill: var(--ink);
}
.npPulse {
  fill: var(--green);
}
.npGlossList {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  border-top: 2px solid var(--ink);
}
.npGlossList div {
  padding: 18px 18px 18px 0;
  border-bottom: 1px solid var(--hair);
  min-width: 0;
}
.npGlossList dt {
  font: 700 19px var(--serif);
  margin-bottom: 6px;
}
.npGlossList dd {
  margin: 0;
  font-size: 14px;
  color: var(--ink2);
}
.npTimeline {
  list-style: none;
  margin: 0;
  padding: 0 0 0 28px;
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 32px;
}
.npTimeline::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 9px;
  height: 2px;
  background: var(--ink);
  transform-origin: left;
  transform: scaleX(var(--npLine,1));
}
.npPhase {
  position: relative;
  padding: 30px 0 26px;
  min-width: 0;
}
.npPhase::before {
  content: "";
  position: absolute;
  left: 0;
  top: 3px;
  width: 12px;
  height: 12px;
  border: 2px solid var(--ink);
  background: var(--paper);
  border-radius: 50%;
}
.npPhase h3 {
  font-size: 22px;
  margin: 10px 0 6px;
}
.npPhase p {
  font-size: 14px;
  color: var(--ink2);
}
.npPhaseTag {
  font: 600 10px/1 var(--sans);
  letter-spacing: .14em;
  text-transform: uppercase;
  border: 1px solid var(--ink3);
  color: var(--ink3);
  padding: 4px 7px;
  display: inline-block;
}
.npPhaseTag.isDone {
  background: var(--green);
  color: var(--paper);
  border-color: var(--green);
}
.npPhaseTag.isBuild {
  border-color: var(--ink);
  color: var(--ink);
}
.npTimeline {
  padding-left: 0;
}
.npCoinGrid {
  display: grid;
  grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
  gap: clamp(24px, 5vw, 64px);
  align-items: center;
}
.npDonut {
  width: 100%;
  max-width: 300px;
  height: auto;
  display: block;
  margin: 0 auto;
}
.npDonutBase {
  fill: none;
  stroke: var(--paper3);
  stroke-width: 22;
}
.npDonutArc {
  fill: none;
  stroke: var(--green);
  stroke-width: 22;
  transform: rotate(-90deg);
  transform-origin: 100px 100px;
  stroke-dasharray: 490.09;
  stroke-dashoffset: 490.09;
}
.npDonutBig {
  font: 700 40px var(--serif);
  fill: var(--ink);
}
.npDonutSmall {
  font: 600 11px var(--sans);
  letter-spacing: .14em;
  text-transform: uppercase;
  fill: var(--ink3);
}
.npCoinFacts {
  margin: 0;
  border-top: 2px solid var(--ink);
}
.npCoinFacts div {
  display: grid;
  grid-template-columns: minmax(0, 200px) minmax(0, 1fr);
  gap: 16px;
  padding: 13px 0;
  border-bottom: 1px solid var(--hair);
}
.npCoinFacts dt {
  font: 600 12px/1.4 var(--sans);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink3);
}
.npCoinFacts dd {
  margin: 0;
  font: 700 18px/1.3 var(--serif);
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.npFaqList {
  border-top: 2px solid var(--ink);
  max-width: 900px;
}
.npQ {
  border-bottom: 1px solid var(--hair);
}
.npQ summary {
  cursor: pointer;
  list-style: none;
  padding: 18px 36px 18px 0;
  font: 700 20px/1.3 var(--serif);
  position: relative;
}
.npQ summary::-webkit-details-marker {
  display: none;
}
.npQ summary::after {
  content: "+";
  position: absolute;
  right: 4px;
  top: 14px;
  font: 400 26px var(--serif);
  transition: transform .4s var(--ease);
}
.npQ[open] summary::after {
  transform: rotate(45deg);
}
.npQ p {
  padding: 0 0 20px;
  color: var(--ink2);
  max-width: 46em;
}
.npFoot {
  border-top: 4px double var(--ink);
  margin-top: 40px;
  padding: 40px clamp(16px, 4vw, 48px) 28px;
  background: var(--paper2);
}
.npFootGrid {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, auto);
  gap: 32px;
}
.npFootBrand {
  font: 700 34px var(--serif);
}
.npFootLine {
  font: italic 15px var(--serif);
  color: var(--ink3);
}
.npNotice h2 {
  font: 600 12px/1 var(--sans);
  letter-spacing: .16em;
  text-transform: uppercase;
  margin-bottom: 10px;
}
.npNotice p {
  font-size: 14px;
  color: var(--ink2);
  columns: 2;
  column-gap: 28px;
  column-rule: 1px solid var(--hair);
}
.npFootLinks {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  flex-wrap: wrap;
}
.npFootLinks a {
  border: 1px solid var(--ink);
  padding: 7px 12px;
  font: 600 12px var(--sans);
  text-decoration: none;
}
.npFootSmall {
  max-width: 1320px;
  margin: 26px auto 0;
  font-size: 12px;
  color: var(--ink3);
  border-top: 1px solid var(--hair);
  padding-top: 12px;
}
.npJs [data-np-rise] {
  opacity: 0;
  transform: translateY(22px);
}
.npJs .npNode,
.npJs .npEdge {
  opacity: 0;
}
@media (max-width:1080px) {
  .npRow {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, .9fr) minmax(0, 1fr) 80px 34px;
  }
  .npRow > :nth-child(6) {
    display: none;
  }
  .npSpark {
    width: 80px;
  }
  .npGlossList {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width:940px) {
  .npNav {
    justify-content: flex-end;
    order: 3;
    flex: 0 0 auto;
    position: static;
  }
  .npMenuBtn {
    display: inline-flex;
    flex-direction: column;
    gap: 4px;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 36px;
    border: 1.5px solid var(--ink);
    background: var(--paper);
    border-radius: 2px;
    cursor: pointer;
    padding: 0;
  }
  .npMenuBtn span {
    display: block;
    width: 16px;
    height: 1.5px;
    background: var(--ink);
    transition: transform .35s var(--ease), opacity .2s;
  }
  .npMenuBtn em {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }
  .npMenuBtn[aria-expanded=true] span:nth-child(1) {
    transform: translateY(5.5px) rotate(45deg);
  }
  .npMenuBtn[aria-expanded=true] span:nth-child(2) {
    opacity: 0;
  }
  .npMenuBtn[aria-expanded=true] span:nth-child(3) {
    transform: translateY(-5.5px) rotate(-45deg);
  }
  .npNavList {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    flex-direction: column;
    background: var(--paper);
    border-bottom: 2px solid var(--ink);
    padding: 8px clamp(16px, 4vw, 48px) 14px;
    transform: translateY(-8px);
    opacity: 0;
    visibility: hidden;
    transition:
      opacity .3s var(--ease),
      transform .4s var(--ease),
      visibility 0s .4s;
  }
  .npNavList.isOpen {
    opacity: 1;
    transform: none;
    visibility: visible;
    transition: opacity .3s var(--ease), transform .4s var(--ease);
  }
  .npNavList a {
    padding: 12px 0;
    font-size: 16px;
    border-bottom: 1px solid var(--hair);
  }
  .npMastRight {
    order: 2;
  }
  .npFrontGrid {
    grid-template-columns: minmax(0, 1fr);
  }
  .npLead {
    border-right: 0;
    padding-right: 0;
  }
  .npTapeStage {
    aspect-ratio: 4/3;
  }
  .npWirePin {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
  }
  .npWireArt {
    order: -1;
    max-width: 420px;
    width: 100%;
    margin: 0 auto;
  }
  .npSheet {
    grid-template-columns: minmax(0, 1fr);
  }
  .npTimeline {
    grid-template-columns: minmax(0, 1fr);
    padding-left: 28px;
  }
  .npTimeline::before {
    left: 5px;
    right: auto;
    top: 0;
    bottom: 0;
    width: 2px;
    height: auto;
    transform-origin: top;
    transform: scaleY(var(--npLine,1));
  }
  .npPhase {
    padding: 0 0 26px;
  }
  .npPhase::before {
    left: -28px;
    top: 2px;
  }
  .npPhase h3 {
    margin-top: 8px;
  }
  .npCoinGrid {
    grid-template-columns: minmax(0, 1fr);
  }
  .npFootGrid {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width:720px) {
  .npStepRow {
    grid-template-columns: minmax(0, 1fr);
  }
  .npStep + .npStep {
    border-left: 0;
    border-top: 1px solid var(--hair);
  }
  .npStep {
    padding: 20px 0;
  }
  .npPlateGrid {
    grid-template-columns: minmax(0, 1fr);
  }
  .npRow {
    grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr) minmax(0, .9fr) 30px;
    gap: 8px;
  }
  .npRow > :nth-child(2),
  .npRow > :nth-child(5),
  .npRow > :nth-child(6),
  .npRow > :nth-child(7) {
    display: none;
  }
  .npLRow {
    grid-template-columns: minmax(0, 1fr);
  }
  .npSatRow {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "t v" "q c";
    row-gap: 4px;
  }
  .npSatRow > :nth-child(1) {
    grid-area: t;
  }
  .npSatRow > :nth-child(2) {
    grid-area: q;
    text-align: left;
    font-size: 13px;
    color: var(--ink3);
  }
  .npSatRow > :nth-child(3) {
    grid-area: c;
    font-size: 13px;
  }
  .npSatRow > :nth-child(4) {
    grid-area: v;
    text-align: right;
  }
  .npTokSym .npChip {
    display: none;
  }
  .npGap {
    text-align: left;
  }
  .npNotice p {
    columns: 1;
  }
  .npCoinFacts div {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }
  .npFacts {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
  .npBoardCtl {
    width: 100%;
  }
  .npBoardCtl .npField {
    flex: 1 1 140px;
  }
}
@media (max-width:520px) {
  .npMastTop .npDateline {
    display: none;
  }
  .npMastTop {
    justify-content: flex-end;
  }
  .npBrandWord {
    font-size: 22px;
  }
  .npBrandMark {
    width: 24px;
    height: 24px;
  }
  .npMastBar {
    gap: 8px;
  }
  .x0e4-btn {
    padding: 8px 10px;
    font-size: 12px;
  }
  .npXLink {
    width: 30px;
    height: 30px;
  }
  .npFigures {
    grid-template-columns: minmax(0, 1fr);
  }
  .npFigures div + div {
    border-left: 0;
    border-top: 1px solid var(--hair);
    padding-left: 0;
  }
  .npGlossList {
    grid-template-columns: minmax(0, 1fr);
  }
  .npBtn {
    white-space: normal;
    text-align: center;
  }
  .npTokName {
    display: none;
  }
  .npSheetHead .npBigPrice {
    text-align: left;
    width: 100%;
  }
  .npBigPrice small {
    text-align: left;
  }
}
@media (prefers-reduced-motion:reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .npPulse {
    display: none;
  }
  .npJs [data-np-rise],
  .npJs .npNode,
  .npJs .npEdge {
    opacity: 1;
    transform: none;
  }
}
