    :root {
      --font-body: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
      --font-code: "SF Mono", "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;
      --color-text: #000;
      --color-text-secondary: #444;
      --color-text-muted: #999;
      --color-text-inverse: #fff;
      --color-link: #17f;
      --color-bg: #f0f0f0;
      --color-bg-surface: #fff;
      --color-bg-hover: #e9e9e9;
      --color-border: #000;
      --color-border-light: #ccc;
      --color-border-subtle: #e0e0e0;
      --color-border-faint: #f0f0f0;
      --color-code-inline: #e66622;
      --radius-sm: 6px;
      --radius-md: 8px;
      --radius-lg: 12px;
      --text-sm: .75rem;
      --text-md: .8rem;
      --text-base: 1rem;
      --text-lg: 1rem;
      --text-xl: 1.4rem;
      --text-2xl: 2.75rem;
      --text-3xl: 4.5rem;
    }

    * { box-sizing: border-box; margin: 0; padding: 0; }

    html { font-size: 15px; }

    body {
      font-family: var(--font-body);
      font-size: var(--text-base);
      line-height: 1.4;
      -webkit-font-smoothing: antialiased;
      background: var(--color-bg);
      color: var(--color-text);
      margin: 0;
    }

    .column {
      max-width: 60rem;
      margin: 0 auto;
      padding: 0 16px;
    }

    @media (min-width: 720px) {
      .main > .column { display: flex; }
    }

    .content {
      min-width: 0;
    }

    /* ——— Sidebar nav ——— */

    .sidebar {
      display: none;
      flex: 0 0 13rem;
    }

    .nav {
      position: sticky;
      top: 2rem;
      display: flex;
      flex-direction: column;
      margin-top: 2rem;
      margin-right: 24px;
    }

    .nav-list {
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .nav-list-item {
      margin: 0;
    }

    .nav-link {
      display: inline-block;
      padding: 3px 6px;
      line-height: 1.35;
      font-size: .875rem;
      color: var(--color-text-secondary);
      font-weight: 800;
      border-radius: 48px;
      text-decoration: none;
    }

    .nav-link:hover {
      text-decoration: none;
      color: var(--color-text);
      background-color: var(--color-bg-hover);
    }

    .nav-sub-list {
      margin: 2px 0 6px;
      padding: 0 0 0 8px;
      list-style: none;
      border-left: 1px solid var(--color-border-subtle);
    }

    .nav-sub-item {
      margin: 0;
    }

    .nav-link-sub {
      font-size: var(--text-md);
      font-weight: 600;
      padding: 2px 8px;
      color: var(--color-text-muted);
      transition: color 0.15s ease;
    }

    .nav-link-sub:hover {
      color: var(--color-text);
    }

    .nav-link-sub.active {
      color: var(--color-text);
      background-color: var(--color-bg-hover);
      border-radius: var(--radius-sm);
      font-weight: 800;
    }

    .nav-list-item:nth-child(1) > .nav-link { color: #4a7aed; }
    .nav-list-item:nth-child(2) > .nav-link { color: #4caf50; }
    .nav-list-item:nth-child(3) > .nav-link { color: #e8594f; }

    .nav-sub-list {
      transition: border-color 0.15s ease;
    }

    .nav-list-item:nth-child(1) .nav-sub-list { border-left-color: #4a7aed; }
    .nav-list-item:nth-child(2) .nav-sub-list { border-left-color: #4caf50; }
    .nav-list-item:nth-child(3) .nav-sub-list { border-left-color: #e8594f; }

    .nav-github {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      margin-top: 16px;
      padding: 3px 6px;
      font-size: .8125rem;
      font-weight: 600;
      color: var(--color-text-muted);
      text-decoration: none;
    }

    .nav-github:hover {
      color: var(--color-text);
    }

    .nav-github svg {
      width: 16px;
      height: 16px;
      fill: currentColor;
    }

    @media (min-width: 720px) {
      .sidebar { display: block; }
    }

    /* ——— Mobile nav ——— */

    .mobile-nav {
      position: sticky;
      top: 0;
      z-index: 100;
      background: var(--color-bg);
      border-bottom: 1px solid var(--color-border-subtle);
    }

    .mobile-nav-scroll {
      display: flex;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      gap: 4px;
      padding: 8px 16px;
      scrollbar-width: none;
    }

    .mobile-nav-scroll::-webkit-scrollbar { display: none; }

    .mobile-nav-link {
      flex-shrink: 0;
      padding: 6px 12px;
      font-size: var(--text-md);
      font-weight: 700;
      color: var(--color-text-secondary);
      white-space: nowrap;
      border-radius: 99px;
      text-decoration: none;
    }

    .mobile-nav-link:hover {
      text-decoration: none;
      background: var(--color-bg-hover);
      color: var(--color-text);
    }

    @media (min-width: 720px) {
      .mobile-nav { display: none; }
    }

    /* ——— Header ——— */

    .header {
      padding-top: 2rem;
      text-align: center;
    }

    h1 {
      font-size: var(--text-2xl);
      font-weight: 800;
      line-height: .9;
      letter-spacing: -.04em;
      margin: 0;
    }

    /* ——— Intro animation ——— */

    .intro-headline,
    .intro-features {
      font-size: 1.4rem;
      font-weight: 800;
      line-height: 1.3;
      letter-spacing: -.02em;
      margin: 0;
    }

    .intro-word {
      display: inline-block;
      opacity: 0;
    }

    .intro-word.original { color: #4a7aed; }

    .intro-features {
      overflow: hidden;
      height: 0;
    }

    .color-1 { color: #e8594f; }
    .color-2 { color: #4caf50; }
    .color-3 { color: #f5a623; }

    .intro-title {
      display: inline-flex;
      align-items: center;
      margin-top: 0.75rem;
      opacity: 0;
    }

    .intro-title-3 {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: #4a7aed;
      color: #fff;
      font-size: 0.75em;
      width: 1.4em;
      height: 1.4em;
      margin-left: 0.15em;
      border-radius: 50%;
    }

    .logo-credit {
      opacity: 0;
    }

    .main {
      opacity: 0;
      transition: opacity 0.8s ease;
    }

    .lead {
      margin-bottom: .25rem;
      font-size: var(--text-base);
      font-weight: 600;
    }

    .logo-credit {
      display: block;
      margin-top: 1rem;
      margin-bottom: 2rem;
      color: var(--color-text-muted);
      font-weight: 800;
      font-size: 1.2rem;
      text-decoration: none;
    }

    .logo-credit:hover {
      text-decoration: underline;
    }

    @media (min-width: 720px) {
      .header { margin-top: 2rem; }
      h1 { font-size: var(--text-3xl); position: relative; left: -.1em; }
      .intro-headline,
      .intro-features { font-size: 1.6rem; }
      .lead { font-size: 1.1em; }
    }

    /* ——— Featured grid ——— */

    .featured {
      position: relative;
      max-width: 60rem;
      margin: 0 auto;
      padding: 0 16px 2rem;
      opacity: 0;
    }

    .featured-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 8px;
      position: relative;
    }

    .featured-grid a {
      display: block;
      overflow: hidden;
      aspect-ratio: 4 / 3;
      background: var(--color-bg-hover);
      border-radius: 8px;
    }

    .featured-grid img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      border-radius: 8px;
      transition: transform 0.15s ease;
    }

    .featured-grid a:active img {
      transform: scale(0.95);
    }

    @media (max-width: 719px) {
      .featured-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    /* ——— Sections ——— */

    section {
      padding: 1.75rem 0;
      position: relative;
    }

    section::after {
      content: '';
      display: block;
      height: 3px;
      background: var(--color-border-light);
      border-radius: 99px;
      margin-top: 1.75rem;
    }

    section:last-of-type::after {
      display: none;
    }

    .section-header {
      display: inline-flex;
      align-items: baseline;
      gap: 0;
      margin-bottom: 6px;
    }

    .section-number {
      font-size: 1.25rem;
      font-weight: 800;
      color: inherit;
    }

    .section-number::after {
      content: '.\00a0';
    }

    h2 {
      font-family: var(--font-body);
      display: inline;
      font-size: 1.25rem;
      font-weight: 800;
      letter-spacing: -.01em;
      line-height: 1;
    }

    section > p {
      margin-bottom: 12px;
      max-width: 600px;
      color: var(--color-text-secondary);
      font-size: .95rem;
      line-height: 1.5;
    }

    /* Section heading colors */
    h2 { color: var(--color-text); }

    /* Top-level section headers */
    .top-section-header {
      font-family: var(--font-body);
      display: inline-block;
      font-size: 1.8rem;
      font-weight: 800;
      line-height: 1;
      margin-top: 2rem;
      margin-bottom: 6px;
    }

    h3 {
      display: block;
      width: fit-content;
      font-size: 1rem;
      font-weight: 800;
      letter-spacing: -.01em;
      line-height: 1;
      color: var(--color-text);
      margin: 2.5rem 0 .5rem;
    }

    h3:first-of-type {
      margin-top: 1rem;
    }

    p {
      margin: .4em 0 .75em;
    }

    a {
      color: var(--color-link);
      text-decoration: none;
    }

    a:hover {
      text-decoration: underline;
    }

    code {
      background-color: rgba(0, 0, 0, 0.04);
      border-radius: 4px;
      font-family: var(--font-code);
      font-size: var(--text-sm);
      padding: 2px 6px;
      line-height: 12px;
    }

    /* ——— Image grid & rows ——— */

    .image-row {
      display: flex;
      gap: 8px;
    }

    .image-row a {
      display: block;
      overflow: hidden;
      aspect-ratio: 1 / 1;
      background: var(--color-bg-hover);
      width: 200px;
      border-radius: 8px;
    }

    .image-row img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      border-radius: 8px;
      transition: transform 0.15s ease;
    }

    .image-row a:active img {
      transform: scale(0.95);
    }

    .gallery {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 8px;
    }

    .gallery a {
      display: block;
      overflow: hidden;
      aspect-ratio: 1 / 1;
      background: var(--color-bg-hover);
      border-radius: 8px;
      outline: none;
    }

    .gallery a:focus-visible {
      outline: 2px solid var(--color-link);
      outline-offset: 2px;
    }

    .gallery img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      border-radius: 8px;
      transition: transform 0.15s ease;
    }

    .gallery a:active img {
      transform: scale(0.95);
    }

    /* ——— Text links ——— */

    .text-links a {
      color: var(--color-link);
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .text-links a:hover {
      color: var(--color-text);
    }

    .text-links ul {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 12px;
      font-size: 1.05rem;
    }

    /* ——— API tables ——— */

    .options-table {
      width: 100%;
      border-collapse: collapse;
      margin: .5rem 0 1.5rem;
    }

    .options-table th,
    .options-table td {
      padding: .5rem .75rem;
      border-bottom: 1px solid rgba(0, 0, 0, 0.06);
      font-size: .875rem;
      text-align: left;
      vertical-align: top;
    }

    .options-table th {
      font-weight: 500;
      font-size: .8rem;
      color: var(--color-text-secondary);
    }

    .options-table tr:last-child td {
      border-bottom: none;
    }

    .options-table code {
      font-size: var(--text-md);
    }

    .subtle {
      color: var(--color-text-muted);
    }

    /* ——— Code blocks ——— */

    .code-block {
      background: var(--color-bg-surface);
      border: 1px solid var(--color-border-subtle);
      border-radius: var(--radius-md);
      padding: 16px;
      margin-bottom: 16px;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }

    .code-block code {
      background: none;
      border: none;
      padding: 0;
      color: var(--color-text-secondary);
      font-size: var(--text-sm);
      font-weight: 500;
      line-height: 1.6;
    }

    /* Prism syntax highlighting */
    .code-block .token.comment,
    .code-block .token.prolog,
    .code-block .token.doctype,
    .code-block .token.cdata { color: #b4b7b4; }

    .code-block .token.punctuation { color: #888; }

    .code-block .token.property,
    .code-block .token.tag,
    .code-block .token.constant,
    .code-block .token.symbol,
    .code-block .token.deleted { color: #e8594f; }

    .code-block .token.boolean,
    .code-block .token.number { color: #e66622; }

    .code-block .token.selector,
    .code-block .token.attr-name,
    .code-block .token.string,
    .code-block .token.char,
    .code-block .token.builtin,
    .code-block .token.inserted { color: #4caf50; }

    .code-block .token.operator,
    .code-block .token.entity,
    .code-block .token.url { color: #888; }

    .code-block .token.atrule,
    .code-block .token.attr-value,
    .code-block .token.keyword { color: #4a7aed; }

    .code-block .token.function,
    .code-block .token.class-name { color: #e66622; }

    /* ——— Footer ——— */

    footer {
      padding: 1.25rem 0;
      border-top: 1px solid var(--color-border-light);
      text-align: center;
      color: var(--color-text-muted);
      font-size: .85rem;
      font-weight: 500;
    }

    footer a {
      color: var(--color-text-muted);
    }

    footer a:hover {
      color: var(--color-text);
    }

    @media (min-width: 720px) {
      footer { text-align: left; }
    }

    @media (max-width: 719px) {
      .options-table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
      }
    }

    /* ——— Mixed gallery ——— */

    .mixed-gallery {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }

    .mixed-gallery a {
      display: block;
      overflow: hidden;
      height: 140px;
      background: var(--color-bg-hover);
      border-radius: 8px;
      outline: none;
    }

    .mixed-gallery a:focus-visible {
      outline: 2px solid var(--color-link);
      outline-offset: 2px;
    }

    .mixed-gallery img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      border-radius: 8px;
      transition: transform 0.15s ease;
    }

    .mixed-gallery a:active img {
      transform: scale(0.95);
    }

    @media (max-width: 719px) {
      .mixed-gallery {
        gap: 6px;
      }

      .mixed-gallery a {
        height: 90px;
        width: auto !important;
        border-radius: 6px;
      }

      .mixed-gallery img {
        width: auto;
        height: 100%;
        border-radius: 6px;
      }
    }

    /* ——— Spring preset buttons ——— */

    .spring-presets {
      display: flex;
      gap: 6px;
    }

    .spring-preset-btn {
      font-family: var(--font-body);
      font-size: .85rem;
      font-weight: 700;
      padding: 6px 14px;
      border-radius: 99px;
      border: 2px solid var(--color-border);
      background: var(--color-bg-surface);
      color: var(--color-text);
      cursor: pointer;
    }

    .spring-preset-btn:hover {
      background: var(--color-bg-hover);
    }

    .spring-preset-btn.active {
      background: var(--color-text);
      color: var(--color-text-inverse);
      border-color: var(--color-text);
    }

    /* ——— Event log ——— */

    .event-log {
      background: var(--color-bg-surface);
      border: 1px solid var(--color-border-subtle);
      border-radius: var(--radius-md);
      padding: 12px 16px;
      height: 180px;
      overflow-y: auto;
      font-family: var(--font-code);
      font-size: var(--text-sm);
      line-height: 1.8;
    }

    .event-log-placeholder {
      color: var(--color-text-muted);
    }

    .event-time {
      color: var(--color-text-muted);
    }

    .event-name {
      color: var(--color-code-inline);
      font-weight: 600;
    }