layout.css 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625
  1. :root {
  2. font-size: 62.5%;
  3. color-scheme: dark;
  4. --color-bg: #0a0a0a;
  5. --color-surface: #0f1a15;
  6. --color-border: #2a2a2a;
  7. --color-text: #e0e0e0;
  8. --color-muted: #888888;
  9. --color-hover: #1a1a1a;
  10. --color-accent: #00ffff;
  11. --color-accent-hover: #bd90f8;
  12. --color-highlight: #ff69b4;
  13. --h1-border-color: #00ffff;
  14. --h2-border-color: #6a9eff;
  15. --h3-border-color: #c4003b;
  16. --h4-border-color: #ff69b4;
  17. --h5-border-color: #00ff7f;
  18. --table-border-color: #1e4242;
  19. --table-header-bg: #070935;
  20. --code-bg: #051313;
  21. --code-border: #41121c;
  22. --inline-code-color: #57a2ce;
  23. --quote-bg: #051111;
  24. --quote-border: #361016;
  25. --radius: 4px;
  26. --shadow: 0 1px 3px rgba(0, 255, 255, 0.1);
  27. --shadow-hover: 0 4px 12px rgba(0, 255, 255, 0.2);
  28. --transition: 0.2s ease;
  29. --font-sans: "Inter", system-ui, -apple-system, sans-serif;
  30. --font-display: "InterDisplay", var(--font-sans);
  31. --font-mono: "Iosevka", "Iosevka Web", monospace;
  32. }
  33. *, *::before, *::after {
  34. box-sizing: border-box;
  35. margin: 0;
  36. padding: 0;
  37. }
  38. html {
  39. font-family: var(--font-sans);
  40. color: var(--color-text);
  41. background-color: var(--color-bg);
  42. -webkit-text-size-adjust: none;
  43. text-size-adjust: none;
  44. }
  45. body {
  46. font-size: 1.6rem;
  47. line-height: 1.5;
  48. overflow-x: hidden;
  49. min-height: 100vh;
  50. }
  51. h1 {
  52. font-family: var(--font-display);
  53. font-weight: 900;
  54. font-size: 2.8rem;
  55. border-left: 3px solid var(--h1-border-color);
  56. padding-inline-start: 12px;
  57. margin-bottom: 1.5rem;
  58. }
  59. h2, h3, h4, h5 {
  60. font-family: var(--font-sans);
  61. font-weight: 700;
  62. border-left: 3px solid;
  63. padding-inline-start: 12px;
  64. }
  65. h2 { font-size: 2.2rem; border-left-color: var(--h2-border-color); margin-block-start: 2.5em; }
  66. h3 { font-size: 1.8rem; border-left-color: var(--h3-border-color); margin-block-start: 2.5em; }
  67. h4 { font-size: 1.6rem; border-left-color: var(--h4-border-color); margin-block-start: 2em; }
  68. h5 { font-size: 1.4rem; border-left-color: var(--h5-border-color); margin-block-start: 2em; }
  69. p, ul, ol { line-height: 1.45em; }
  70. ul { list-style-type: square; }
  71. a {
  72. color: var(--color-accent);
  73. text-decoration: none;
  74. transition: color var(--transition);
  75. }
  76. a:hover { color: var(--color-accent-hover); }
  77. code {
  78. font-family: var(--font-mono);
  79. font-size: 1.4rem;
  80. color: var(--inline-code-color);
  81. background-color: var(--code-bg);
  82. border: 1px solid var(--code-border);
  83. padding: 0.2em 0.4em;
  84. border-radius: 3px;
  85. }
  86. .container {
  87. width: 100%;
  88. max-width: 1200px;
  89. margin: 0 auto;
  90. padding: 0 1.5rem;
  91. }
  92. .container-sm { max-width: 720px; }
  93. .container-lg { max-width: 1400px; }
  94. .grid { display: grid; gap: 1.5rem; }
  95. .grid-2 { grid-template-columns: repeat(2, 1fr); }
  96. .grid-3 { grid-template-columns: repeat(3, 1fr); }
  97. .grid-4 { grid-template-columns: repeat(4, 1fr); }
  98. .grid-auto { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
  99. .flex { display: flex; }
  100. .flex-wrap { flex-wrap: wrap; }
  101. .flex-col { flex-direction: column; }
  102. .items-center { align-items: center; }
  103. .justify-center { justify-content: center; }
  104. .justify-between { justify-content: space-between; }
  105. .gap-sm { gap: 0.5rem; }
  106. .gap { gap: 1.5rem; }
  107. .gap-lg { gap: 2rem; }
  108. .box {
  109. background: var(--color-surface);
  110. border: 1px solid var(--table-border-color);
  111. border-radius: var(--radius);
  112. padding: 1.5rem;
  113. }
  114. .box-outline {
  115. background: transparent;
  116. border: 1px solid var(--table-border-color);
  117. border-radius: var(--radius);
  118. padding: 1.5rem;
  119. }
  120. .box-shadow {
  121. background: var(--color-surface);
  122. border-radius: var(--radius);
  123. padding: 1.5rem;
  124. box-shadow: var(--shadow);
  125. }
  126. .hover {
  127. transition: all var(--transition);
  128. cursor: pointer;
  129. }
  130. .hover:hover {
  131. background: var(--color-hover);
  132. border-color: var(--color-accent);
  133. }
  134. .hover-lift {
  135. transition: all var(--transition);
  136. cursor: pointer;
  137. }
  138. .hover-lift:hover {
  139. transform: translateY(-2px);
  140. box-shadow: var(--shadow-hover);
  141. }
  142. .hover-border { transition: border-color var(--transition); }
  143. .hover-border:hover { border-color: var(--color-highlight); }
  144. .p-0 { padding: 0; }
  145. .p-sm { padding: 0.5rem; }
  146. .p { padding: 1.5rem; }
  147. .p-lg { padding: 2rem; }
  148. .m-0 { margin: 0; }
  149. .m-sm { margin: 0.5rem; }
  150. .m { margin: 1.5rem; }
  151. .m-lg { margin: 2rem; }
  152. .mx-auto { margin-inline: auto; }
  153. .mt { margin-top: 1.5rem; }
  154. .mb { margin-bottom: 1.5rem; }
  155. .mt-lg { margin-top: 2rem; }
  156. .mb-lg { margin-bottom: 2rem; }
  157. .text-center { text-align: center; }
  158. .text-muted { color: var(--color-muted); }
  159. .text-sm { font-size: 1.4rem; }
  160. .text-lg { font-size: 2rem; }
  161. .text-bold { font-weight: 700; }
  162. .mono { font-family: var(--font-mono); }
  163. .section { padding: 3rem 0; }
  164. .row {
  165. display: flex;
  166. flex-wrap: wrap;
  167. margin: -0.75rem;
  168. }
  169. .row > * { padding: 0.75rem; }
  170. .col { flex: 1; }
  171. .col-auto { flex: 0 0 auto; }
  172. .col-6 { flex: 0 0 50%; max-width: 50%; }
  173. .col-4 { flex: 0 0 33.333%; max-width: 33.333%; }
  174. .col-3 { flex: 0 0 25%; max-width: 25%; }
  175. .input {
  176. flex: 1;
  177. padding: 0.8rem 1.2rem;
  178. font-size: 1.6rem;
  179. font-family: inherit;
  180. border: 1px solid var(--color-border);
  181. border-radius: var(--radius);
  182. background: var(--color-bg);
  183. color: var(--color-text);
  184. outline: none;
  185. transition: border-color var(--transition), box-shadow var(--transition);
  186. }
  187. .input:focus {
  188. border-color: var(--color-accent);
  189. box-shadow: 0 0 0 3px rgba(0, 255, 255, 0.15);
  190. }
  191. .input::placeholder { color: var(--color-muted); }
  192. .btn {
  193. display: inline-flex;
  194. align-items: center;
  195. justify-content: center;
  196. gap: 0.5rem;
  197. padding: 0.8rem 1.6rem;
  198. font-size: 1.6rem;
  199. font-family: inherit;
  200. font-weight: 600;
  201. border: 1px solid transparent;
  202. border-radius: var(--radius);
  203. cursor: pointer;
  204. transition: all var(--transition);
  205. background: var(--color-accent);
  206. color: var(--color-bg);
  207. }
  208. .btn:hover { background: var(--color-highlight); }
  209. .btn:active { transform: scale(0.98); }
  210. .btn-outline {
  211. background: transparent;
  212. border-color: var(--table-border-color);
  213. color: var(--color-text);
  214. }
  215. .btn-outline:hover {
  216. background: var(--color-hover);
  217. border-color: var(--color-accent);
  218. color: var(--color-accent);
  219. }
  220. .input-group { display: flex; }
  221. .input-group .input {
  222. border-top-right-radius: 0;
  223. border-bottom-right-radius: 0;
  224. border-right: none;
  225. }
  226. .input-group .btn {
  227. border-top-left-radius: 0;
  228. border-bottom-left-radius: 0;
  229. }
  230. .header {
  231. background: var(--color-bg);
  232. border-bottom: 1px solid var(--table-border-color);
  233. padding: 1.5rem 0;
  234. }
  235. .logo {
  236. font-family: var(--font-display);
  237. font-size: 2rem;
  238. font-weight: 900;
  239. color: var(--color-text);
  240. }
  241. .logo span { color: var(--color-accent); }
  242. .nav { display: flex; gap: 2rem; }
  243. .nav a {
  244. color: var(--color-muted);
  245. font-weight: 500;
  246. font-size: 1.5rem;
  247. }
  248. .nav a:hover { color: var(--color-highlight); }
  249. .nav a.active { color: var(--color-accent); }
  250. .stats-grid {
  251. display: grid;
  252. grid-template-columns: repeat(4, 1fr);
  253. gap: 1.5rem;
  254. }
  255. .stat-card {
  256. background: var(--color-surface);
  257. border: 1px solid var(--table-border-color);
  258. border-radius: var(--radius);
  259. padding: 1.5rem;
  260. text-align: center;
  261. }
  262. .stat-card .label {
  263. font-size: 1.1rem;
  264. color: var(--color-muted);
  265. text-transform: uppercase;
  266. letter-spacing: 0.1em;
  267. margin-bottom: 0.4rem;
  268. }
  269. .stat-card .value {
  270. font-size: 1.8rem;
  271. font-weight: 600;
  272. color: var(--color-accent);
  273. font-family: var(--font-mono);
  274. letter-spacing: 0.05em;
  275. }
  276. .table-section {
  277. background: var(--color-bg);
  278. border: 1px solid var(--table-border-color);
  279. border-radius: var(--radius);
  280. overflow: hidden;
  281. }
  282. .table-header {
  283. display: flex;
  284. justify-content: space-between;
  285. align-items: center;
  286. padding: 1.5rem;
  287. border-bottom: 1px solid var(--table-border-color);
  288. background: var(--table-header-bg);
  289. }
  290. .table-header h3 {
  291. font-size: 1.6rem;
  292. font-weight: 700;
  293. color: var(--color-text);
  294. border-left: none;
  295. padding-inline-start: 0;
  296. margin: 0;
  297. }
  298. .badge {
  299. background: var(--color-accent);
  300. color: var(--color-bg);
  301. font-size: 1.2rem;
  302. padding: 0.3rem 0.8rem;
  303. border-radius: 3px;
  304. font-weight: 600;
  305. }
  306. .badge-pink { background: var(--color-highlight); }
  307. .table-wrapper { overflow-x: auto; }
  308. .table-scroll {
  309. overflow: auto;
  310. max-height: 300px;
  311. }
  312. table {
  313. width: 100%;
  314. border-collapse: collapse;
  315. font-size: 1.4rem;
  316. font-family: var(--font-mono);
  317. letter-spacing: 0.05em;
  318. }
  319. thead {
  320. background: var(--table-header-bg);
  321. position: sticky;
  322. top: 0;
  323. z-index: 1;
  324. }
  325. th {
  326. text-align: left;
  327. padding: 1rem 1.5rem;
  328. color: var(--color-muted);
  329. font-weight: 600;
  330. font-size: 1.1rem;
  331. text-transform: uppercase;
  332. letter-spacing: 0.1em;
  333. border-bottom: 1px solid var(--table-border-color);
  334. }
  335. td {
  336. padding: 1rem 1.5rem;
  337. border-bottom: 1px solid var(--table-border-color);
  338. color: var(--color-text);
  339. }
  340. tr:last-child td { border-bottom: none; }
  341. tbody tr:hover td { background: var(--color-hover); }
  342. .hash {
  343. font-family: var(--font-mono);
  344. font-size: 1.3rem;
  345. color: var(--color-accent);
  346. }
  347. .hash:hover { color: var(--color-highlight); }
  348. .height { font-weight: 700; }
  349. .info-table { width: 100%; }
  350. .info-table td {
  351. padding: 1rem 1.5rem;
  352. border-bottom: 1px solid var(--table-border-color);
  353. vertical-align: top;
  354. }
  355. .info-table tr:last-child td { border-bottom: none; }
  356. .info-table .info-label {
  357. width: 200px;
  358. color: var(--color-muted);
  359. font-weight: 400;
  360. font-family: var(--font-sans);
  361. font-size: 1.4rem;
  362. }
  363. .info-table td:last-child {
  364. font-family: var(--font-mono);
  365. font-size: 1.4rem;
  366. word-break: break-all;
  367. }
  368. .block-title {
  369. border-bottom: 1px solid var(--table-border-color);
  370. padding-bottom: 1.5rem;
  371. }
  372. .block-title h1 {
  373. font-size: 2.4rem;
  374. margin-bottom: 0.8rem;
  375. border-left: none;
  376. padding-inline-start: 0;
  377. }
  378. .block-nav {
  379. color: var(--color-muted);
  380. padding: 0 0.5rem;
  381. }
  382. .block-nav:hover { color: var(--color-accent); }
  383. .block-hash {
  384. font-family: var(--font-mono);
  385. font-size: 1.3rem;
  386. color: var(--color-muted);
  387. word-break: break-all;
  388. line-height: 1.6;
  389. }
  390. .pow-monero { border-color: #ff6600; }
  391. .pow-monero .table-header {
  392. background: linear-gradient(90deg, rgba(255, 102, 0, 0.1) 0%, transparent 100%);
  393. border-bottom-color: rgba(255, 102, 0, 0.3);
  394. }
  395. .badge-monero { background: #ff6600; color: #fff; }
  396. .hash-monero { color: #ff6600 !important; }
  397. .hash-monero:hover { color: #ff9933 !important; }
  398. .pow-native .table-header { border-bottom: none; }
  399. .pow-native-info { padding: 1.5rem; font-size: 1.4rem; }
  400. .tx-grid {
  401. display: grid;
  402. grid-template-columns: 1fr 1fr;
  403. gap: 1.5rem;
  404. align-items: start;
  405. }
  406. .contract-calls { padding: 0; }
  407. .call-item {
  408. display: flex;
  409. gap: 1.5rem;
  410. padding: 1.2rem 1.5rem;
  411. border-bottom: 1px solid var(--table-border-color);
  412. }
  413. .call-item:last-child { border-bottom: none; }
  414. .call-item:hover { background: var(--color-hover); }
  415. .call-index {
  416. display: inline-flex;
  417. align-items: center;
  418. justify-content: center;
  419. min-width: 3rem;
  420. height: 3rem;
  421. background: var(--color-accent);
  422. color: var(--color-bg);
  423. font-family: var(--font-mono);
  424. font-size: 1.3rem;
  425. font-weight: 700;
  426. border-radius: var(--radius);
  427. flex-shrink: 0;
  428. }
  429. .call-details { flex: 1; min-width: 0; }
  430. .call-row {
  431. display: flex;
  432. justify-content: space-between;
  433. align-items: baseline;
  434. gap: 1rem;
  435. padding: 0.3rem 0;
  436. }
  437. .call-label { font-size: 1.3rem; color: var(--color-muted); }
  438. .call-value {
  439. font-family: var(--font-mono);
  440. font-size: 1.3rem;
  441. color: var(--color-text);
  442. text-align: right;
  443. word-break: break-all;
  444. }
  445. .contract-tag {
  446. font-family: var(--font-sans);
  447. font-size: 1.1rem;
  448. color: var(--color-muted);
  449. font-style: italic;
  450. margin-left: 0.5rem;
  451. }
  452. .call-byte { color: var(--color-accent); margin-right: 0.5rem; }
  453. .code-block {
  454. padding: 1.5rem;
  455. background: var(--code-bg);
  456. border-top: 1px solid var(--code-border);
  457. overflow-x: auto;
  458. }
  459. .code-block code {
  460. font-size: 1.3rem;
  461. color: var(--inline-code-color);
  462. background: none;
  463. border: none;
  464. padding: 0;
  465. word-break: break-all;
  466. white-space: pre-wrap;
  467. }
  468. .footer {
  469. border-top: 1px solid var(--table-border-color);
  470. padding: 3rem 0;
  471. text-align: center;
  472. color: var(--color-muted);
  473. font-size: 1.4rem;
  474. }
  475. blockquote {
  476. margin: 2rem 0;
  477. padding: 0.5rem 2rem;
  478. color: var(--color-text);
  479. background-color: var(--quote-bg);
  480. border-left: 3px solid var(--quote-border);
  481. }
  482. ::-webkit-scrollbar { width: 8px; height: 8px; }
  483. ::-webkit-scrollbar-track { background: var(--color-bg); }
  484. ::-webkit-scrollbar-thumb { background: var(--table-border-color); border-radius: 4px; }
  485. ::-webkit-scrollbar-thumb:hover { background: var(--color-accent); }
  486. @media (max-width: 768px) {
  487. .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  488. .stats-grid { grid-template-columns: repeat(2, 1fr); }
  489. .tx-grid { grid-template-columns: 1fr; }
  490. .row { flex-direction: column; }
  491. .col-6, .col-4, .col-3 { flex: 0 0 100%; max-width: 100%; }
  492. .input-group { flex-direction: row; }
  493. .nav { gap: 1.5rem; font-size: 1.4rem; }
  494. .hash {
  495. max-width: 120px;
  496. overflow: hidden;
  497. text-overflow: ellipsis;
  498. white-space: nowrap;
  499. display: inline-block;
  500. }
  501. table { font-size: 1.3rem; }
  502. th, td { padding: 0.75rem 1rem; }
  503. .info-table .info-label { width: 140px; font-size: 1.3rem; }
  504. .info-table td:last-child { font-size: 1.3rem; }
  505. .block-hash { font-size: 1.1rem; }
  506. .call-row { flex-direction: column; align-items: flex-start; gap: 0.2rem; }
  507. .call-value { text-align: left; }
  508. .hide-mobile { display: none; }
  509. }
  510. @media (min-width: 769px) {
  511. .hide-desktop { display: none; }
  512. }
  513. @media (min-width: 769px) and (max-width: 1024px) {
  514. .grid-4, .stats-grid { grid-template-columns: repeat(2, 1fr); }
  515. }