this repo has no description attested.network/
at main 635 lines 12 kB view raw
1:root { 2 --bg: #ffffff; 3 --bg-subtle: #f8f9fb; 4 --bg-code: #f4f5f7; 5 --surface: #ffffff; 6 --border: #e5e7eb; 7 --border-light: #f0f1f3; 8 --text: #111827; 9 --text-secondary: #4b5563; 10 --text-tertiary: #9ca3af; 11 --accent: #6d28d9; 12 --accent-light: #8b5cf6; 13 --accent-bg: #f5f3ff; 14 --accent-border: #ddd6fe; 15 --green: #059669; 16 --green-bg: #ecfdf5; 17 --blue: #2563eb; 18 --orange: #d97706; 19 --mono: 'JetBrains Mono', 'SF Mono', 'Fira Code', monospace; 20 --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; 21} 22 23* { margin: 0; padding: 0; box-sizing: border-box; } 24 25body { 26 font-family: var(--sans); 27 background: var(--bg); 28 color: var(--text); 29 line-height: 1.7; 30 -webkit-font-smoothing: antialiased; 31} 32 33/* Top nav bar */ 34.topnav { 35 position: sticky; 36 top: 0; 37 z-index: 100; 38 background: rgba(255, 255, 255, 0.85); 39 backdrop-filter: blur(12px); 40 border-bottom: 1px solid var(--border); 41 padding: 0 24px; 42} 43 44.topnav-inner { 45 max-width: 1100px; 46 margin: 0 auto; 47 display: flex; 48 align-items: center; 49 justify-content: space-between; 50 height: 56px; 51 gap: 24px; 52} 53 54.topnav-logo { 55 font-weight: 700; 56 font-size: 1rem; 57 color: var(--text); 58 text-decoration: none; 59 flex-shrink: 0; 60 display: flex; 61 align-items: center; 62 gap: 8px; 63} 64 65.topnav-logo-img { 66 height: 24px; 67 width: auto; 68} 69 70.topnav-logo span { color: var(--accent); } 71 72.topnav-links { 73 display: flex; 74 gap: 24px; 75 list-style: none; 76 overflow-x: auto; 77 -webkit-overflow-scrolling: touch; 78 scrollbar-width: none; 79} 80 81.topnav-links::-webkit-scrollbar { display: none; } 82 83.topnav-links a { 84 font-size: 0.85rem; 85 font-weight: 500; 86 color: var(--text-secondary); 87 text-decoration: none; 88 transition: color 0.15s; 89 white-space: nowrap; 90} 91 92.topnav-links a:hover { color: var(--accent); } 93.topnav-links a.active { color: var(--accent); } 94 95/* Hero */ 96.hero { 97 text-align: center; 98 padding: 80px 24px 64px; 99 background: linear-gradient(180deg, var(--accent-bg) 0%, var(--bg) 100%); 100 border-bottom: 1px solid var(--border-light); 101} 102 103.hero h1 { 104 font-size: 3rem; 105 font-weight: 700; 106 letter-spacing: -0.04em; 107 line-height: 1.15; 108 margin-bottom: 16px; 109} 110 111.hero h1 span { color: var(--accent); } 112 113.hero .subtitle { 114 font-size: 1.2rem; 115 color: var(--text-secondary); 116 max-width: 560px; 117 margin: 0 auto 32px; 118 line-height: 1.6; 119} 120 121.hero-badges { 122 display: flex; 123 gap: 12px; 124 justify-content: center; 125 flex-wrap: wrap; 126} 127 128.hero-badge { 129 display: inline-flex; 130 align-items: center; 131 gap: 6px; 132 font-size: 0.85rem; 133 font-weight: 500; 134 color: var(--accent); 135 background: var(--surface); 136 border: 1px solid var(--accent-border); 137 border-radius: 8px; 138 padding: 8px 16px; 139 text-decoration: none; 140 transition: background 0.15s, border-color 0.15s; 141} 142 143.hero-badge:hover { 144 background: var(--accent-bg); 145 border-color: var(--accent-light); 146} 147 148.hero-badge svg { 149 width: 16px; 150 height: 16px; 151} 152 153/* Small hero for sub-pages */ 154.hero-sm { 155 text-align: left; 156 padding: 48px 24px 40px; 157 background: linear-gradient(180deg, var(--accent-bg) 0%, var(--bg) 100%); 158 border-bottom: 1px solid var(--border-light); 159} 160 161.hero-sm .hero-inner { 162 max-width: 860px; 163 margin: 0 auto; 164} 165 166.hero-sm h1 { 167 font-size: 2rem; 168 font-weight: 700; 169 letter-spacing: -0.03em; 170 line-height: 1.2; 171 margin-bottom: 8px; 172} 173 174.hero-sm h1 span { color: var(--accent); } 175 176.hero-sm .subtitle { 177 font-size: 1.05rem; 178 color: var(--text-secondary); 179 max-width: 560px; 180 line-height: 1.6; 181 margin: 0; 182} 183 184.hero-sm .breadcrumb { 185 font-size: 0.82rem; 186 color: var(--text-tertiary); 187 margin-bottom: 12px; 188} 189 190.hero-sm .breadcrumb a { 191 color: var(--text-tertiary); 192 text-decoration: none; 193} 194 195.hero-sm .breadcrumb a:hover { color: var(--accent); } 196 197/* Main content */ 198.container { 199 max-width: 860px; 200 margin: 0 auto; 201 padding: 0 24px; 202} 203 204section { 205 padding: 64px 0; 206} 207 208section + section { 209 border-top: 1px solid var(--border-light); 210} 211 212h2 { 213 font-size: 1.75rem; 214 font-weight: 700; 215 letter-spacing: -0.03em; 216 margin-bottom: 12px; 217} 218 219.section-desc { 220 font-size: 1.05rem; 221 color: var(--text-secondary); 222 margin-bottom: 32px; 223 max-width: 640px; 224} 225 226h3 { 227 font-size: 1.15rem; 228 font-weight: 600; 229 margin-bottom: 8px; 230} 231 232p { 233 color: var(--text-secondary); 234 margin-bottom: 16px; 235} 236 237a { color: var(--accent); text-decoration: none; } 238a:hover { text-decoration: underline; } 239 240/* Mermaid */ 241.mermaid-wrapper { 242 background: var(--bg-subtle); 243 border: 1px solid var(--border); 244 border-radius: 12px; 245 padding: 32px 16px; 246 margin: 32px 0; 247 overflow-x: auto; 248} 249 250/* Card grid */ 251.card-grid { 252 display: grid; 253 grid-template-columns: repeat(2, 1fr); 254 gap: 16px; 255 margin-top: 28px; 256} 257 258@media (max-width: 640px) { 259 .card-grid { grid-template-columns: 1fr; } 260} 261 262.card { 263 background: var(--surface); 264 border: 1px solid var(--border); 265 border-radius: 12px; 266 padding: 24px; 267 transition: border-color 0.15s, box-shadow 0.15s; 268} 269 270.card:hover { 271 border-color: var(--accent-border); 272 box-shadow: 0 2px 12px rgba(109, 40, 217, 0.06); 273} 274 275.card h4 { 276 font-size: 0.95rem; 277 font-weight: 600; 278 margin-bottom: 6px; 279} 280 281.card p { 282 font-size: 0.88rem; 283 color: var(--text-secondary); 284 margin-bottom: 0; 285 line-height: 1.55; 286} 287 288/* Guide cards (landing page audience selector) */ 289.guide-grid { 290 display: grid; 291 grid-template-columns: repeat(2, 1fr); 292 gap: 16px; 293 margin-top: 20px; 294} 295 296@media (max-width: 640px) { 297 .guide-grid { grid-template-columns: 1fr; } 298} 299 300.guide-card { 301 display: block; 302 background: var(--surface); 303 border: 1px solid var(--border); 304 border-left: 3px solid var(--accent); 305 border-radius: 12px; 306 padding: 24px 24px 24px 22px; 307 text-decoration: none; 308 transition: border-color 0.15s, box-shadow 0.15s; 309} 310 311.guide-card:hover { 312 border-color: var(--accent-border); 313 border-left-color: var(--accent-light); 314 box-shadow: 0 2px 12px rgba(109, 40, 217, 0.08); 315 text-decoration: none; 316} 317 318.guide-card h4 { 319 font-size: 0.95rem; 320 font-weight: 600; 321 color: var(--text); 322 margin-bottom: 4px; 323} 324 325.guide-card p { 326 font-size: 0.85rem; 327 color: var(--text-secondary); 328 margin-bottom: 0; 329 line-height: 1.5; 330} 331 332.guide-card .guide-arrow { 333 display: inline-block; 334 color: var(--accent); 335 font-size: 0.82rem; 336 font-weight: 500; 337 margin-top: 10px; 338} 339 340/* Lexicon blocks */ 341.lexicon-block { 342 background: var(--surface); 343 border: 1px solid var(--border); 344 border-radius: 12px; 345 margin-bottom: 24px; 346 overflow: hidden; 347} 348 349.lexicon-header { 350 padding: 24px 28px 20px; 351 border-bottom: 1px solid var(--border-light); 352} 353 354.lexicon-tag { 355 display: inline-block; 356 font-size: 0.7rem; 357 font-weight: 600; 358 font-family: var(--mono); 359 color: var(--accent); 360 background: var(--accent-bg); 361 border: 1px solid var(--accent-border); 362 border-radius: 6px; 363 padding: 2px 8px; 364 margin-bottom: 8px; 365 text-transform: uppercase; 366 letter-spacing: 0.05em; 367} 368 369.lexicon-name { 370 font-family: var(--mono); 371 font-size: 1.05rem; 372 font-weight: 600; 373 color: var(--text); 374 margin-bottom: 6px; 375 word-break: break-all; 376} 377 378.lexicon-desc { 379 font-size: 0.92rem; 380 color: var(--text-secondary); 381 margin-bottom: 0; 382 line-height: 1.55; 383} 384 385.lexicon-body { 386 padding: 0 28px 24px; 387} 388 389/* Schema table */ 390.schema-table { 391 width: 100%; 392 border-collapse: collapse; 393 font-size: 0.875rem; 394 margin: 20px 0 0; 395} 396 397.schema-table th { 398 text-align: left; 399 font-weight: 600; 400 font-size: 0.72rem; 401 text-transform: uppercase; 402 letter-spacing: 0.06em; 403 color: var(--text-tertiary); 404 padding: 10px 12px; 405 border-bottom: 1px solid var(--border); 406} 407 408.schema-table td { 409 padding: 10px 12px; 410 border-bottom: 1px solid var(--border-light); 411 vertical-align: top; 412} 413 414.schema-table tr:last-child td { border-bottom: none; } 415 416.field-name { 417 font-family: var(--mono); 418 font-weight: 500; 419 font-size: 0.84rem; 420 color: var(--accent); 421 white-space: nowrap; 422} 423 424.field-type { 425 font-family: var(--mono); 426 font-size: 0.8rem; 427 color: var(--green); 428 white-space: nowrap; 429} 430 431.field-type .constraint { 432 color: var(--orange); 433 font-size: 0.72rem; 434 font-weight: 500; 435} 436 437.field-desc { 438 color: var(--text-secondary); 439 font-size: 0.85rem; 440} 441 442/* Inline code */ 443code { 444 font-family: var(--mono); 445 font-size: 0.85em; 446 background: var(--bg-code); 447 color: var(--accent); 448 padding: 2px 6px; 449 border-radius: 4px; 450 border: 1px solid var(--border-light); 451} 452 453/* Code blocks */ 454.code-block { 455 border: 1px solid var(--border); 456 border-radius: 10px; 457 overflow: hidden; 458 margin: 20px 0; 459} 460 461.code-label { 462 font-size: 0.72rem; 463 font-family: var(--mono); 464 font-weight: 500; 465 color: var(--text-tertiary); 466 padding: 10px 16px; 467 background: var(--bg-subtle); 468 border-bottom: 1px solid var(--border); 469 text-transform: uppercase; 470 letter-spacing: 0.05em; 471} 472 473pre { 474 padding: 16px; 475 font-family: var(--mono); 476 font-size: 0.82rem; 477 line-height: 1.65; 478 overflow-x: auto; 479 background: var(--bg-code); 480 margin: 0; 481} 482 483.hl-key { color: #8b5cf6; } 484.hl-str { color: #059669; } 485.hl-num { color: #d97706; } 486.hl-punc { color: #6b7280; } 487.hl-comment { color: #9ca3af; font-style: italic; } 488 489/* Info callout */ 490.callout { 491 background: var(--accent-bg); 492 border: 1px solid var(--accent-border); 493 border-radius: 10px; 494 padding: 20px 24px; 495 margin: 24px 0; 496} 497 498.callout p { color: var(--text-secondary); margin-bottom: 0; } 499.callout strong { color: var(--text); } 500 501/* Steps */ 502.steps { 503 counter-reset: step; 504 padding-left: 0; 505 list-style: none; 506} 507 508.steps li { 509 counter-increment: step; 510 position: relative; 511 padding-left: 40px; 512 margin-bottom: 16px; 513 color: var(--text-secondary); 514 font-size: 0.95rem; 515} 516 517.steps li::before { 518 content: counter(step); 519 position: absolute; 520 left: 0; 521 top: 1px; 522 width: 26px; 523 height: 26px; 524 border-radius: 50%; 525 background: var(--accent-bg); 526 border: 1px solid var(--accent-border); 527 color: var(--accent); 528 font-size: 0.78rem; 529 font-weight: 600; 530 display: flex; 531 align-items: center; 532 justify-content: center; 533 line-height: 1; 534} 535 536/* Trust model list */ 537.trust-list { 538 list-style: none; 539 margin-top: 20px; 540} 541 542.trust-list li { 543 padding: 16px 20px; 544 border: 1px solid var(--border); 545 border-radius: 10px; 546 margin-bottom: 12px; 547 background: var(--surface); 548} 549 550.trust-list li strong { 551 color: var(--text); 552 display: block; 553 margin-bottom: 2px; 554 font-size: 0.92rem; 555} 556 557.trust-list li span { 558 color: var(--text-secondary); 559 font-size: 0.88rem; 560} 561 562/* Section sub-heading helper */ 563.sub-heading { font-size: 0.78rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-tertiary); margin: 20px 0 4px; } 564 565/* Draft banner */ 566.draft-banner { 567 background: #fef3c7; 568 border-bottom: 2px solid #f59e0b; 569 padding: 16px 24px; 570 text-align: center; 571} 572 573.draft-banner p { 574 color: #92400e; 575 font-size: 0.9rem; 576 font-weight: 500; 577 margin: 0; 578 max-width: 720px; 579 margin: 0 auto; 580 line-height: 1.5; 581} 582 583.draft-banner strong { 584 color: #78350f; 585 font-weight: 700; 586 text-transform: uppercase; 587 letter-spacing: 0.03em; 588} 589 590/* Footer */ 591footer { 592 border-top: 1px solid var(--border); 593 padding: 40px 24px; 594 text-align: center; 595} 596 597footer p { 598 font-size: 0.85rem; 599 color: var(--text-tertiary); 600} 601 602footer a { color: var(--text-tertiary); } 603footer a:hover { color: var(--accent); } 604 605/* Responsive */ 606@media (max-width: 640px) { 607 .hero { padding: 48px 24px 40px; } 608 .hero h1 { font-size: 2rem; } 609 .hero .subtitle { font-size: 1rem; } 610 .hero-sm h1 { font-size: 1.5rem; } 611 .lexicon-block { overflow: visible; } 612 .lexicon-header, .lexicon-body { padding-left: 16px; padding-right: 16px; } 613 .lexicon-name { font-size: 0.82rem; overflow-wrap: break-word; word-break: break-word; } 614 .topnav-links { gap: 16px; } 615 .topnav-links a { font-size: 0.78rem; } 616 .card-grid, .guide-grid { grid-template-columns: 1fr; } 617 618 /* Stack schema tables on mobile */ 619 .schema-table thead { display: none; } 620 .schema-table, .schema-table tbody { display: block; } 621 .schema-table tr { 622 display: block; 623 padding: 12px 0; 624 border-bottom: 1px solid var(--border-light); 625 } 626 .schema-table tr:last-child { border-bottom: none; } 627 .schema-table td { 628 display: block; 629 padding: 2px 0; 630 border-bottom: none; 631 } 632 .field-name { font-size: 0.88rem; } 633 .field-type { white-space: normal; font-size: 0.76rem; } 634 .field-desc { font-size: 0.82rem; margin-top: 4px; } 635}