| :root { |
| --bg: #f4f5ef; |
| --surface: rgba(255, 255, 255, 0.9); |
| --surface-strong: #fbfbf7; |
| --ink: #17221c; |
| --muted: #445149; |
| --line: #cfd6cb; |
| --brand: #18543d; |
| --brand-strong: #103c2b; |
| --signal: #bd7b22; |
| --signal-strong: #865410; |
| --focus: #0f6fd6; |
| --shadow: 0 20px 50px rgba(17, 26, 19, 0.12); |
| --sans: "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif; |
| --serif: "Iowan Old Style", "Palatino Linotype", Georgia, serif; |
| --mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace; |
| } |
|
|
| * { |
| box-sizing: border-box; |
| } |
|
|
| html { |
| scroll-behavior: smooth; |
| } |
|
|
| body { |
| margin: 0; |
| color: var(--ink); |
| background: |
| radial-gradient(circle at top left, rgba(188, 222, 199, 0.65), transparent 32%), |
| radial-gradient(circle at right 15%, rgba(241, 213, 172, 0.45), transparent 28%), |
| linear-gradient(180deg, #f7f8f2 0%, #eef1ea 100%); |
| font-family: var(--sans); |
| } |
|
|
| a { |
| color: var(--brand-strong); |
| } |
|
|
| a:focus, |
| button:focus, |
| select:focus, |
| input:focus { |
| outline: 3px solid var(--focus); |
| outline-offset: 3px; |
| } |
|
|
| .skip-link { |
| position: absolute; |
| left: -9999px; |
| top: 0; |
| } |
|
|
| .skip-link:focus { |
| left: 1rem; |
| top: 1rem; |
| z-index: 100; |
| padding: 0.75rem 1rem; |
| border-radius: 999px; |
| background: #ffffff; |
| } |
|
|
| .hero { |
| position: relative; |
| overflow: hidden; |
| padding: 4rem 1.25rem 3rem; |
| background: linear-gradient(135deg, #102b21, #20563e 50%, #87632c 100%); |
| color: #f6f8f1; |
| } |
|
|
| .hero-backdrop { |
| position: absolute; |
| inset: 0; |
| background: |
| linear-gradient(75deg, rgba(255, 255, 255, 0.05), transparent 45%), |
| repeating-linear-gradient(135deg, transparent, transparent 18px, rgba(255, 255, 255, 0.04) 18px, rgba(255, 255, 255, 0.04) 19px); |
| } |
|
|
| .hero-inner { |
| position: relative; |
| max-width: 1120px; |
| margin: 0 auto; |
| } |
|
|
| .eyebrow { |
| margin: 0 0 0.5rem; |
| text-transform: uppercase; |
| letter-spacing: 0.12em; |
| font-size: 0.78rem; |
| font-weight: 700; |
| } |
|
|
| h1, |
| h2, |
| h3 { |
| font-family: var(--serif); |
| } |
|
|
| h1 { |
| max-width: 14ch; |
| margin: 0; |
| font-size: clamp(2.4rem, 5vw, 4.6rem); |
| line-height: 0.95; |
| } |
|
|
| .lede { |
| max-width: 68ch; |
| font-size: 1.05rem; |
| line-height: 1.7; |
| } |
|
|
| .disclaimer { |
| max-width: 72ch; |
| padding-left: 1rem; |
| border-left: 4px solid rgba(255, 222, 168, 0.95); |
| } |
|
|
| .action-row, |
| .card-actions, |
| .footer-links, |
| .bullet-list, |
| .space-nav, |
| .summary-grid, |
| .space-grid, |
| .section-body { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 1rem; |
| } |
|
|
| .button { |
| display: inline-flex; |
| align-items: center; |
| justify-content: center; |
| min-height: 44px; |
| padding: 0.8rem 1.1rem; |
| border-radius: 999px; |
| border: 1px solid transparent; |
| text-decoration: none; |
| font-weight: 700; |
| } |
|
|
| .button.primary { |
| background: #fff0; |
| color: #f8fbf7; |
| border-color: rgba(255, 255, 255, 0.55); |
| } |
|
|
| .button.secondary { |
| background: #f5f7f2; |
| color: var(--brand-strong); |
| } |
|
|
| .button.ghost { |
| background: transparent; |
| border-color: rgba(255, 255, 255, 0.35); |
| color: #f8fbf7; |
| } |
|
|
| .page-shell { |
| display: grid; |
| grid-template-columns: 1fr; |
| gap: 1rem; |
| max-width: 1200px; |
| margin: -1.75rem auto 0; |
| padding: 0 1rem 2rem; |
| } |
|
|
| .panel { |
| border: 1px solid var(--line); |
| border-radius: 24px; |
| background: var(--surface); |
| box-shadow: var(--shadow); |
| } |
|
|
| .sidebar, |
| .summary-panel, |
| .section-panel { |
| padding: 1.25rem; |
| } |
|
|
| .space-nav, |
| .bullet-list { |
| list-style: none; |
| padding: 0; |
| margin: 0; |
| } |
|
|
| .space-nav a, |
| .sidebar-block a { |
| display: block; |
| padding: 0.7rem 0.8rem; |
| border-radius: 16px; |
| text-decoration: none; |
| } |
|
|
| .space-nav a[aria-current="page"] { |
| background: #e8eee8; |
| font-weight: 700; |
| } |
|
|
| .sidebar-block { |
| display: grid; |
| gap: 0.4rem; |
| margin-top: 1.5rem; |
| } |
|
|
| .content { |
| display: grid; |
| gap: 1rem; |
| } |
|
|
| .summary-grid > article, |
| .space-card, |
| .data-card, |
| .interactive-card { |
| flex: 1 1 220px; |
| min-width: 0; |
| padding: 1rem; |
| border-radius: 18px; |
| background: var(--surface-strong); |
| border: 1px solid var(--line); |
| } |
|
|
| .space-card h3, |
| .data-card h3, |
| .interactive-card h3 { |
| margin-top: 0; |
| } |
|
|
| .space-emoji { |
| margin: 0; |
| font-size: 1.6rem; |
| } |
|
|
| .section-header { |
| margin-bottom: 1rem; |
| } |
|
|
| .section-body { |
| align-items: stretch; |
| } |
|
|
| .interactive-region { |
| display: grid; |
| gap: 1rem; |
| width: 100%; |
| } |
|
|
| .selector-row { |
| display: grid; |
| gap: 0.5rem; |
| } |
|
|
| label, |
| select, |
| input, |
| textarea { |
| font: inherit; |
| } |
|
|
| select { |
| width: 100%; |
| min-height: 44px; |
| padding: 0.75rem; |
| border: 1px solid var(--line); |
| border-radius: 14px; |
| background: #ffffff; |
| } |
|
|
| .tag-row, |
| .timeline, |
| .definition-list { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 0.5rem; |
| } |
|
|
| .tag, |
| .pill { |
| display: inline-flex; |
| align-items: center; |
| min-height: 36px; |
| padding: 0.35rem 0.75rem; |
| border-radius: 999px; |
| border: 1px solid #d7ddd2; |
| background: #eef4ee; |
| font-size: 0.92rem; |
| } |
|
|
| .code-block { |
| margin: 0; |
| padding: 1rem; |
| border-radius: 18px; |
| background: #12251a; |
| color: #d9efe0; |
| font-family: var(--mono); |
| overflow-x: auto; |
| } |
|
|
| .footer { |
| display: flex; |
| flex-wrap: wrap; |
| justify-content: space-between; |
| gap: 1rem; |
| max-width: 1200px; |
| margin: 0 auto; |
| padding: 0 1rem 2rem; |
| } |
|
|
| @media (min-width: 960px) { |
| .page-shell { |
| grid-template-columns: minmax(260px, 300px) minmax(0, 1fr); |
| } |
|
|
| .sidebar { |
| position: sticky; |
| top: 1rem; |
| align-self: start; |
| } |
| } |
|
|
| @media (prefers-reduced-motion: reduce) { |
| html { |
| scroll-behavior: auto; |
| } |
|
|
| *, |
| *::before, |
| *::after { |
| animation: none !important; |
| transition: none !important; |
| } |
| } |
|
|