<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
    <title>Lightning CSS</title>
    <link rel="icon" href="favicon.svg">
    <link rel="mask-icon" href="favicon.svg" color="#f9bb03">
    <meta name="description" content="An extremely fast CSS parser, transformer, bundler, and minifier.">
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:image" content="og.jpeg">
    <meta name="twitter:site" content="@lightningcss">
    <meta name="twitter:creator" content="@lightningcss">
    <meta property="og:type" content="website">
    <meta property="og:locale" content="en_US">
    <meta property="og:url" content="https://lightningcss.dev">
    <meta property="og:title" content="Lightning CSS">
    <meta property="og:description" content="An extremely fast CSS parser, transformer, bundler, and minifier.">
    <meta property="og:image" content="og.jpeg">
    <link rel="preload" as="font" type="font/woff2" crossorigin href="https://use.typekit.net/af/916187/00000000000000007735bfa0/30/l?primer=81a69539b194230396845be9681d114557adfb35f4cccc679c164afb4aa47365&fvd=n6&v=3">
    <link rel="preload" as="image" href="lightspeed.svg">
  </head>
  <body>
    <header>
      <svg viewBox="495 168 360 654">
        <path class="outer" d="M594.41,805c-.71,0-1.43-.15-2.11-.47-2.2-1.03-3.34-3.48-2.72-5.83l67.98-253.71h-140.45c-1.86,0-3.57-1.04-4.44-2.69-.86-1.65-.73-3.65,.34-5.18l26.85-38.35q25.56-36.51,104.91-149.83l106.31-151.82c1.39-1.99,4.01-2.69,6.21-1.66,2.2,1.03,3.34,3.48,2.72,5.83l-67.98,253.71h140.45c1.86,0,3.57,1.04,4.43,2.69,.86,1.65,.73,3.65-.34,5.18l-238.07,340c-.96,1.37-2.51,2.13-4.1,2.13Zm-67.69-270h137.37c1.55,0,3.02,.72,3.97,1.96,.95,1.23,1.27,2.84,.86,4.34l-62.33,232.61,216.29-308.9h-137.36c-1.55,0-3.02-.72-3.97-1.96-.95-1.23-1.27-2.84-.86-4.34l62.33-232.61-90.04,128.59q-79.35,113.32-104.91,149.83l-21.34,30.48Z"/>
        <path class="inner" d="M594.41,805c-.71,0-1.43-.15-2.11-.47-2.2-1.03-3.34-3.48-2.72-5.83l67.98-253.71h-140.45c-1.86,0-3.57-1.04-4.44-2.69-.86-1.65-.73-3.65,.34-5.18l26.85-38.35q25.56-36.51,104.91-149.83l106.31-151.82c1.39-1.99,4.01-2.69,6.21-1.66,2.2,1.03,3.34,3.48,2.72,5.83l-67.98,253.71h140.45c1.86,0,3.57,1.04,4.43,2.69,.86,1.65,.73,3.65-.34,5.18l-238.07,340c-.96,1.37-2.51,2.13-4.1,2.13Zm-67.69-270h137.37c1.55,0,3.02,.72,3.97,1.96,.95,1.23,1.27,2.84,.86,4.34l-62.33,232.61,216.29-308.9h-137.36c-1.55,0-3.02-.72-3.97-1.96-.95-1.23-1.27-2.84-.86-4.34l62.33-232.61-90.04,128.59q-79.35,113.32-104.91,149.83l-21.34,30.48Z"/>
      </svg>
      <h1>Lightning CSS</h1>
      <h2>An extremely fast CSS parser, transformer, bundler, and minifier.</h2>
      <p><a href="./playground/index.html">Playground</a> • <a href="docs.html">Docs</a> • <a href="https://docs.rs/lightningcss" target="_blank">Rust docs</a> • <a href="https://npmjs.com/lightningcss" target="_blank">npm</a>  • <a href="https://github.com/parcel-bundler/lightningcss" target="_blank">GitHub</a></p>
    </header>
    <main>
      <section class="warp">
        <h3>Light speed</h3>
        <p><strong>Lightning CSS is over 100x faster than comparable JavaScript-based tools.</strong> It can minify over 2.7 million lines of code per second on a single thread.</p>
        <p style="font-size: 0.85em">Lightning CSS is written in Rust, a native systems programming language. It was built with performance in mind from the start, designed to make efficient use of memory, and limit AST passes.</p>
        <p><a href="docs.html">Get started →</a></p>
        <figure>
          <div class="chart" role="img" aria-label="Build time chart. CSSNano – 544ms, ESBuild – 17.2ms, Lightning CSS – 4.16ms" style="max-width: 800px; margin-top: 40px; position: relative; padding-bottom: 110px; white-space: nowrap">
            <div style="text-align: center; font-weight: bold; font-size: 15px; margin-left: 90px; margin-bottom: 12px">Build time</div>
            <div style="position: absolute; left: 90px; right: 15px; height: 110px">
              <div style="position: absolute; top: 0; left: 0; bottom: 20px; width: 1px; background: white"></div>
              <div style="position: absolute; left: 0; bottom: 0; transform: translateX(-50%); font-size: 12px">0ms</div>
              <div class="line" style="position: absolute; top: 0; left: 25%; bottom: 20px; width: 1px; background: white"></div>
              <div class="line" style="position: absolute; left: 25%; bottom: 0; transform: translateX(-50%); font-size: 12px">150ms</div>
              <div style="position: absolute; top: 0; left: 50%; bottom: 20px; width: 1px; background: white"></div>
              <div style="position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); font-size: 12px">300ms</div>
              <div class="line" style="position: absolute; top: 0; left: 75%; bottom: 20px; width: 1px; background: white"></div>
              <div class="line" style="position: absolute; left: 75%; bottom: 0; transform: translateX(-50%); font-size: 12px">450ms</div>
              <div style="position: absolute; top: 0; left: 100%; bottom: 20px; width: 1px; background: white"></div>
              <div style="position: absolute; left: 100%; bottom: 0; transform: translateX(-50%); font-size: 12px">600ms</div>
              
              <div class="bars" style="position: absolute; left: 1px; top: 0; right: 70px; --cssnano: 544.81; --esbuild: 17.2; --lightningcss: 4.16">
                <div style="position: absolute; top: 5px; left: 0; width: 100%; height: 20px; background: var(--gold)"></div>
                <div class="label" style="position: absolute; left: calc(100% + 5px); top: 5px; line-height: 20px; font-size: 12px">544.81ms</div>
                <div style="position: absolute; top: 35px; left: 0; width: calc(1% * var(--esbuild) / var(--cssnano) * 100); height: 20px; background: var(--gold)"></div>
                <div style="position: absolute; left: calc(1% * var(--esbuild) / var(--cssnano) * 100 + 5px); top: 35px; line-height: 20px; font-size: 12px">17.2ms</div>
                <div style="position: absolute; top: 65px; left: 0; width: calc(1% * var(--lightningcss) / var(--cssnano) * 100); height: 20px; background: var(--gold)"></div>
                <div style="position: absolute; left: calc(1% * var(--lightningcss) / var(--cssnano) * 100 + 5px); top: 65px; line-height: 20px; font-size: 12px">4.16ms</div>
              </div>
              <style>
                @media (width < 700px) {
                  .warp .bars {
                    right: 5px !important;
                  }

                  .warp .bars .label {
                    left: auto !important;
                    right: 5px;
                    color: black;
                  }
                }
              </style>

              <div style="position: absolute; right: calc(100% + 10px); top: 5px; line-height: 20px; font-size: 13px">CSSNano</div>
              <div style="position: absolute; right: calc(100% + 10px); top: 35px; line-height: 20px; font-size: 13px">ESBuild</div>
              <div style="position: absolute; left: -10px; transform: translateX(-100%); top: 65px; line-height: 20px; font-size: 13px">Lightning CSS</div> 
            </div>
          </div>
          <figcaption>Time to minify Bootstrap 4 (~10,000 lines). See the <a href="https://github.com/parcel-bundler/lightningcss#benchmarks" target="_blank">readme</a> for more benchmarks.</figcaption>
        </figure>
      </section>
      <section class="future">
        <div class="inner">
          <h3 class="title">Live in the future</h3>
          <div class="description">
            <p><strong>Lightning CSS lets you use modern CSS features and future syntax today.</strong> Features such as CSS nesting, custom media queries, high gamut color spaces, logical properties, and new selector features are automatically converted to more compatible syntax based on your browser targets.</p>
            <p>Lightning CSS also automatically adds vendor prefixes for your browser targets, so you can keep your source code clean and repetition free.</p>
            <p><a href="transpilation.html">Learn more →</a></p>
          </div>
          <div class="example">
            <div class="targets"><h4>Target Browsers</h4><code>last 2 versions</code></div>
            <div class="box input"><h4 class="title">Input</h4><pre>
<code><span class="class">.foo</span> {
  <span class="property">color</span>: <span class="keyword">oklab</span>(<span class="number">59.686% 0.1009 0.1192</span>);
}</code></pre></div>
            <div class="box"><h4 class="title">Output</h4><pre>
<code><span class="class">.foo</span> {
  <span class="property">color</span>: <span class="number">#c65d07</span>;
  <span class="property">color</span>: <span class="keyword">color</span>(<span class="keyword">display-p3</span> <span class="number">.724144 .386777 .148795</span>);
  <span class="property">color</span>: <span class="keyword">lab</span>(<span class="number">52.2319% 40.1449 59.9171</span>);
}</code></pre>
            </div>
          </div>
        </div>
      </section>
      <section class="crush">
        <h3>Crush it!</h3>
        <p style="font-weight: bold;">Lightning CSS is not only fast when it comes to build time. It produces smaller output, so your website loads faster too.</p>
        <p style="font-size: 0.85em">The Lightning CSS minifier combines longhand properties into shorthands, removes unnecessary vendor prefixes, merges compatible adjacent rules, removes unnecessary default values, reduces <code>calc()</code> expressions, shortens colors, minifies gradients, and much more.</p>
        <p><a href="minification.html">Details →</a></p>
        <figure>
          <div class="chart" role="img" aria-label="Output size chart. CSSNano – 155.89 KB, ESBuild – 156.57 KB, Lightning CSS – 139.74 KB" style="max-width: 800px; margin-top: 40px; position: relative; padding-bottom: 110px; white-space: nowrap">
            <div style="text-align: center; font-weight: bold; font-size: 15px; margin-left: 90px; margin-bottom: 12px">Output size</div>
            <div style="position: absolute; left: 90px; right: 15px; height: 110px">
              <div style="position: absolute; top: 0; left: 0; bottom: 20px; width: 1px; background: black"></div>
              <div style="position: absolute; left: 0; bottom: 0; transform: translateX(-50%); font-size: 12px">0 KB</div>
              <div class="line" style="position: absolute; top: 0; left: 25%; bottom: 20px; width: 1px; background: black"></div>
              <div class="line" style="position: absolute; left: 25%; bottom: 0; transform: translateX(-50%); font-size: 12px">40 KB</div>
              <div style="position: absolute; top: 0; left: 50%; bottom: 20px; width: 1px; background: black"></div>
              <div style="position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); font-size: 12px">80 KB</div>
              <div class="line" style="position: absolute; top: 0; left: 75%; bottom: 20px; width: 1px; background: black"></div>
              <div class="line" style="position: absolute; left: 75%; bottom: 0; transform: translateX(-50%); font-size: 12px">120 KB</div>
              <div style="position: absolute; top: 0; left: 100%; bottom: 20px; width: 1px; background: black"></div>
              <div style="position: absolute; left: 100%; bottom: 0; transform: translateX(-50%); font-size: 12px">160 KB</div>
              
              <div style="position: absolute; left: 1px; top: 0; right: 5px; --cssnano: 155.89; --esbuild: 156.57; --lightningcss: 139.74">
                <div style="position: absolute; top: 5px; left: 0; width: calc(1% * var(--cssnano) / var(--esbuild) * 100); height: 20px; background: rgb(186, 25, 33)"></div>
                <div style="position: absolute; right: calc(100% + 5px - 1% * var(--cssnano) / var(--esbuild) * 100); top: 5px; line-height: 20px; font-size: 12px; color: white">155.89 KB</div>
                <div style="position: absolute; top: 35px; left: 0; width: 100%; height: 20px; background: rgb(186, 25, 33)"></div>
                <div style="position: absolute; right: 5px; top: 35px; line-height: 20px; font-size: 12px; color: white">156.57 KB</div>
                <div style="position: absolute; top: 65px; left: 0; width: calc(1% * var(--lightningcss) / var(--esbuild) * 100); height: 20px; background: rgb(186, 25, 33)"></div>
                <div style="position: absolute; right: calc(100% + 5px - 1% * var(--lightningcss) / var(--esbuild) * 100); top: 65px; line-height: 20px; font-size: 12px; color: white">139.74 KB</div>
              </div>

              <div style="position: absolute; right: calc(100% + 10px); top: 5px; line-height: 20px; font-size: 13px">CSSNano</div>
              <div style="position: absolute; right: calc(100% + 10px); top: 35px; line-height: 20px; font-size: 13px">ESBuild</div>
              <div style="position: absolute; left: -10px; transform: translateX(-100%); top: 65px; line-height: 20px; font-size: 13px">Lightning CSS</div> 
            </div>
          </div>
          <figcaption>Output size after minifying Bootstrap 4 (~10,000 lines). See the <a href="https://github.com/parcel-bundler/lightningcss#benchmarks" target="_blank">readme</a> for more benchmarks.</figcaption>
        </figure>
      </section>
      <section class="modules">
        <div class="compartment main">
          <h3>CSS modules</h3>
          <p><strong>Lightning CSS supports CSS modules, which locally scope classes, ids, <code>@keyframes</code>, CSS variables, and more.</strong> This ensures that there are no unintended name clashes between different CSS files.</p>
          <p style="font-size: 0.8em">Lightning CSS generates a mapping of the original names to scoped names, which can be used from your JavaScript. This also enables unused classes and variables to be tree-shaken.</p>
          <p><a href="css-modules.html">Documentation →</a></p>
        </div>
        <pre class="compartment input"><code>.heading {
  composes: typography from './typography.css';
  color: gray;
}</code></pre>
        <pre class="compartment output"><code>.EgL3uq_heading {
  color: gray;
}</code></pre>
        <pre class="compartment json"><code>{
  "heading": {
    "name": "EgL3uq_heading",
    "composes": [{
      "type": "dependency",
      "name": "typography",
      "specifier": "./typography.css"
    }]
  }
}</code></pre>
      </section>
      <section class="parser">
        <div>
          <h3>Browser grade</h3>
          <p><strong>Lightning CSS is written in Rust, using the <a href="https://github.com/servo/rust-cssparser" target="_blank">cssparser</a> and <a href="https://github.com/servo/stylo/tree/main/selectors" target="_blank">selectors</a> crates created by Mozilla and used by Firefox.</strong> These provide a solid CSS-parsing foundation on top of which Lightning CSS implements support for all specific CSS rules and properties.</p>
          <p style="font-size: 0.85em">Lightning CSS fully parses every CSS rule, property, and value just as a browser would. This reduces duplicate work for transformers, leading to improved performance and minification.</p>
          <p><a href="transforms.html">Custom transforms →</a></p>
        </div>
        <pre><code><span class="ident">Background</span>([<span class="ident">Background</span> {
  image: <span class="ident">Url</span>(<span class="ident">Url</span> { url: <span class="string">"img.png"</span> }),
  color: <span class="ident">CssColor</span>(<span class="ident">RGBA</span>(<span class="ident">RGBA</span> { red: <span class="number">0</span>, green: <span class="number">0</span>, blue: <span class="number">0</span>, alpha: <span class="number">0</span> })),
  position: <span class="ident">Position</span> {
    x: <span class="ident">Length</span>(<span class="ident">Dimension</span>(<span class="ident">Px</span>(<span class="number">20.0</span>))),
    y: <span class="ident">Length</span>(<span class="ident">Dimension</span>(<span class="ident">Px</span>(<span class="number">10.0</span>))),
  },
  repeat: <span class="ident">BackgroundRepeat</span> {
    x: <span class="ident">Repeat</span>,
    y: <span class="ident">Repeat</span>,
  },
  size: <span class="ident">Explicit</span> {
    width: <span class="ident">LengthPercentage</span>(<span class="ident">Dimension</span>(<span class="ident">Px</span>(<span class="number">50.0</span>))),
    height: <span class="ident">LengthPercentage</span>(<span class="ident">Dimension</span>(<span class="ident">Px</span>(<span class="number">100.0</span>))),
  },
  attachment: <span class="ident">Scroll</span>,
  origin: <span class="ident">PaddingBox</span>,
  clip: <span class="ident">BorderBox</span>,
}])</code></pre>
      </section>
    </main>
    <footer>
      Copyright © 2024 Devon Govett and Parcel Contributors.
    </footer>
    <style>
      html {
        color-scheme: dark;
        background: #111;
      }

      body {
        font-family: system-ui;
        --gold: lch(80% 82.34 80.104);
        --gold-text: lch(85% 82.34 80.104);
        --gold-shadow: lch(80% 82.34 80.104 / .7);
      }

      @font-face {
        font-family:"din-1451-lt-pro-engschrift";
        src:url("https://use.typekit.net/af/7fa6e1/00000000000000007735bbcd/30/l?primer=388f68b35a7cbf1ee3543172445c23e26935269fadd3b392a13ac7b2903677eb&fvd=n4&v=3") format("woff2"),url("https://use.typekit.net/af/7fa6e1/00000000000000007735bbcd/30/d?primer=388f68b35a7cbf1ee3543172445c23e26935269fadd3b392a13ac7b2903677eb&fvd=n4&v=3") format("woff"),url("https://use.typekit.net/af/7fa6e1/00000000000000007735bbcd/30/a?primer=388f68b35a7cbf1ee3543172445c23e26935269fadd3b392a13ac7b2903677eb&fvd=n4&v=3") format("opentype");
        font-display:auto;font-style:normal;font-weight:400;font-stretch:normal;
      }

      @font-face {
        font-family:"urbane-rounded";
        src:url("https://use.typekit.net/af/916187/00000000000000007735bfa0/30/l?primer=81a69539b194230396845be9681d114557adfb35f4cccc679c164afb4aa47365&fvd=n6&v=3") format("woff2"),url("https://use.typekit.net/af/916187/00000000000000007735bfa0/30/d?primer=81a69539b194230396845be9681d114557adfb35f4cccc679c164afb4aa47365&fvd=n6&v=3") format("woff"),url("https://use.typekit.net/af/916187/00000000000000007735bfa0/30/a?primer=81a69539b194230396845be9681d114557adfb35f4cccc679c164afb4aa47365&fvd=n6&v=3") format("opentype");
        font-display:auto;font-style:normal;font-weight:600;font-stretch:normal;
      }

      header {
        max-width: 1200px;
        margin: 0 auto;
        padding: 100px 0;
        font-size: 16px;
        background: radial-gradient(closest-side, lch(80% 82.34 80.104 / .3), transparent);
        display: grid;
        column-gap: 50px;
        grid-template-areas: "logo header"
                             "logo subheader"
                             ". links";
      }

      header svg {
        filter: drop-shadow(0 0 5px var(--gold-shadow)) drop-shadow(0 0 20px var(--gold-shadow));
        grid-area: logo;
        place-self: center end;
        width: 100px;
      }

      header svg .outer {
        stroke-width: 30px;
        stroke: var(--gold);
      }

      header svg .inner {
        fill: lch(100% 82.34 80.104);
      }

      header h1 {
        font-family: urbane-rounded;
        font-size: 100px;
        -webkit-text-stroke: 3px var(--gold-text);
        color: transparent;
        filter: drop-shadow(0 0 3px var(--gold-shadow)) drop-shadow(0 0 15px var(--gold));
        padding: 20px 0;
        margin: 0;
        letter-spacing: -0.02em;
      }

      header h1::selection { 
        -webkit-text-stroke-color: #fffddd;
        background-color: var(--gold-text);
      }

      header h2 {
        font-family: urbane-rounded;
        color: lch(65% 85 35);
        text-shadow: 0 0 20px lch(65% 85 35);
        margin: 0;
        letter-spacing: -0.02em;
      }

      header p {
        grid-area: links;
      }

      header a {
        font-family: urbane-rounded;
        font-size: 1.05em;
        color: lch(90% 50.34 80.104);
        filter: drop-shadow(0 0 8px lch(90% 50.34 80.104 / .7));
        text-decoration-color: lch(90% 50.34 80.104 / 0);
        text-decoration-style: wavy;
        text-decoration-thickness: 2px;
        text-underline-offset: 2px;
        text-decoration-skip-ink: none;
        transition: text-decoration-color 150ms;
      }

      header a:hover {
        text-decoration-color: lch(90% 50.34 80.104);
      }

      @media (width < 950px) {
        header {
          column-gap: 30px;
        }

        header h1 {
          font-size: 80px;
        }

        header h2 {
          font-size: 20px;
        }

        header svg {
          width: 80px;
        }
      }

      @media (width < 800px) {
        header {
          column-gap: 15px;
          padding: 30px 0;
        }

        header h1 {
          font-size: 60px;
        }

        header h2 {
          font-size: 16px;
        }

        header a {
          font-size: 14px;
        }

        header svg {
          width: 60px;
        }
      }

      @media (width < 500px) {
        header {
          grid-template-areas: "logo"
                               "header"
                               "subheader"
                               "links";
          place-items: center;
          text-align: center;
          gap: 8px;
        }
        header h1 {
          font-size: 38px;
          -webkit-text-stroke-width: 1.5px;
          padding: 0;
        }

        header h2 {
          font-size: 14px;
        }

        header a {
          font-size: 13px;
        }

        header svg {
          place-self: center;
        }
      }

      main {
        max-width: 1400px;
        margin: 0 auto;
      }

      main section {
        --padding: 60px;
        padding: var(--padding);
        margin: 60px;
        font-size: 22px;
        --radius: 50px;
        border-radius: var(--radius);
      }

      main section h3 {
        margin-top: 0;
        font-size: 1.8em;
      }

      main section p {
        line-height: 1.4em;
      }

      main p a {
        font-weight: bold;
        font-size: 0.9em;
        color: inherit;
        text-decoration: none;
      }

      main p a:hover {
        text-decoration: underline;
      }

      figure {
        max-width: 800px;
        margin: 0;
      }

      figcaption {
        font-size: 10px;
        text-align: center;
        margin-top: 20px;
      }

      figcaption a {
        color: inherit;
      }

      @media (width < 500px) {
        main section {
          margin: 20px 10px;
          --padding: 20px;
          --radius: 20px;
          font-size: 16px;
        }
      }

      .warp {
        background: black;
        color: white;
        background-image: radial-gradient(rgb(10 3 34 / .2), rgb(10 3 34 / .7)), url(lightspeed.svg);
        background-size: cover;
        background-position: center center;
        box-shadow: inset 0 0 0 1px rgb(255 255 255 / .15);
      }

      .warp h3 {
        color: var(--gold-text);
        text-shadow: 0 0 15px var(--gold-shadow);
      }

      .warp p {
        max-width: 900px;
      }

      .warp figcaption {
        color: #aaa;
      }

      .warp p a {
        color: var(--gold-text);
        text-shadow: 0 0 7px var(--gold-shadow);
      }

      .crush {
        background-image: url(crush.svg), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3E%3Cpath fill='rgb(0 0 0 / .2)' d='M1 3h1v1H1V3zm2-2h1v1H3V1z'%3E%3C/path%3E%3C/svg%3E"), linear-gradient(to bottom right, lch(75% 82.34 80.104), lch(68% 82.34 80.104));
        background-size: 600px auto, auto, auto;
        background-repeat: no-repeat, repeat;
        background-position: bottom right;
        color: black;
        padding-right: 550px;
      }

      .crush h3 {
        font-size: 3em;
        margin-bottom: 0;
        color: lch(42.758% 73.588 34.159);
        -webkit-text-stroke: 1px black;
        text-shadow: 3px 3px 0 black;
        text-transform: uppercase;
        width: fit-content;
        word-spacing: .1em;
      }

      .crush figcaption {
        color: #222;
      }

      .crush p a {
        color: lch(30% 73.588 34.159);
      }

      @media (width < 1200px) {
        .crush {
          padding-right: var(--padding);
          padding-bottom: 500px;
          background-position: bottom right;
          background-size: auto 500px, auto, auto;
        }
      }

      @media (width < 500px) {
        .crush {
          padding-bottom: 300px;
          background-size: auto 300px, auto, auto;
        }
      }

      .future {
        background: #215178;
        color: white;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='rgba(255,255,255,0.05)' fill-opacity='1'%3E%3Cpath opacity='.5' d='M96 95h4v1h-4v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9zm-1 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9z'/%3E%3Cpath d='M6 5V0H5v5H0v1h5v94h1V6h94V5H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"), radial-gradient(#1F4D97, #030B16);
        box-shadow: inset 0 0 0 1px rgb(255 255 255 / .1);
        position: relative;
        --color: lch(85% 58 205);
      }

      .future .title {
        font-family: din-1451-lt-pro-engschrift, sans-serif;
        text-transform: uppercase;
        position: absolute;
        --height: 1.2em;
        top: calc(var(--height) * -.5);
        left: calc(var(--height) * 1.5);
        margin-left: -5px;
        background: var(--color);
        filter: drop-shadow(0 0 8px var( --color));
        width: fit-content;
        color: #030B16;
        margin-top: 0;
      }

      .future h3.title {
        font-size: 1.6em;
        line-height: var(--height);
      }

      .future h4.title {
        font-size: 16px;
        line-height: var(--height);
      }

      .future .title:before {
        content: '';
        display: inline-block;
        position: absolute;
        right: 100%;
        width: 0;
        height: 0;
        border-top: var(--height) solid var( --color);
        border-left: var(--height) solid transparent;
      }

      .future .title:after {
        content: '';
        display: inline-block;
        position: absolute;
        left: 100%;
        width: 0;
        height: 0;
        border-bottom: var(--height) solid var( --color);
        border-right: var(--height) solid transparent;
      }

      .future .inner {
        border: 2px solid var(--color);
        box-shadow: 0 0 15px var( --color), inset 0 0 15px var( --color);
        border-radius: 20px;
        padding: 20px;
        display: flex;
        flex-direction: row;
        position: relative;
      }

      .future .description {
        margin: 40px;
      }

      .future .description p:first-child {
        margin-top: 0;
      }

      .future .description p:last-child {
        margin-bottom: 0;
      }

      .future .example {
        display: flex;
        flex-direction: column;
        gap: 30px;
        flex-shrink: 0;
      }

      .future .box {
        --color: lch(64% 103 0);
        border: 2px solid var(--color);
        background: lch(64% 103 0 / .15);
        border-radius: 10px;
        box-shadow: 0 0 20px var(--color), inset 0 0 10px var(--color);
        padding: 15px;
        text-shadow: 0 0 8px var(--color);
        position: relative;
        width: fit-content;
        margin-left: auto;
        max-width: 100%;
        box-sizing: border-box;
      }

      .future .box code {
        font-size: 14px;
        display: block;
        overflow: visible auto;
      }

      .future .box .title {
        color: white
      }

      .future .box .property {
        color: white;
      }

      .future .box .keyword {
        color: var(--color);
      }

      .future .box .number {
        color: lch(71% 103 52);
      }

      .future .box .class {
        color: lch(87% 107 89);
      }

      .future .targets h4 {
        font-family: din-1451-lt-pro-engschrift, sans-serif;
        text-transform: uppercase;
        display: inline;
        vertical-align: middle;
        margin: 0;
        margin-right: 10px;
        color: lch(85% 58 205 / .7);
      }

      .future .targets {
        border: 2px solid lch(85% 58 205 / .5);
        box-shadow: 0 0 10px lch(85% 58 205 / .5);
        border-radius: 6px;
        padding: 8px;
        width: fit-content;
        margin-left: auto;
        font-size: 16px;
      }

      .future .targets code {
        font-size: 15px;
      }

      .future a {
        color: lch(85% 58 205);
        text-shadow: 0 0 10px lch(85% 58 205 / .6);
      }

      @media (width < 1200px) {
        .future .inner {
          flex-direction: column;
        }

        .future .box, .future .targets {
          margin-left: 0
        }
      }

      @media (width < 500px) {
        .future .description {
          margin: 20px 4px;
        }

        .future .box {
          padding: 10px;
        }
        
        .future .targets h4 {
          display: block;
        }
      }

      .parser {
        background-image: linear-gradient(rgb(0 0 0 / .1), rgb(0 0 0 / .1)), image-set("metal.jpeg?as=webp&width=1200" 1x, "metal.jpeg?as=webp&width=2400" 2x);
        background-size: cover;
        color: black;
        text-shadow: inset 0 2px 5px black;
        position: relative;
        --inset: 35px;
        padding: calc(var(--padding) + var(--inset) * .6);
        display: flex;
        column-gap: 40px;
        row-gap: 20px;
        box-shadow: inset 0 0 0 1px rgb(255 255 255 / .4);
      }

      .parser > * {
        z-index: 2;
      }

      .parser:before {
        content: '';
        position: absolute;
        inset: calc(var(--inset) / 2);
        border-radius: calc(var(--radius) * .8);
        box-shadow: inset 2px 3px 10px rgb(0 0 0 / .7), 1px 1px 0 rgb(255 255 255 / .4);
        background: rgb(0 0 0 / .05);
        pointer-events: none;
        z-index: 0;
      }

      .parser:after {
        content: '';
        position: absolute;
        inset: var(--inset);
        border-radius: calc(var(--radius) * .4);
        box-shadow: inset 1px 1px 0 rgb(255 255 255 / .4), 2px 3px 10px rgb(0 0 0 / .7);
        background: rgb(255 255 255 / .25);
        pointer-events: none;
        z-index: 1;
      }

      .parser h3 {
        font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
        letter-spacing: 2px;
        text-transform: uppercase;
        text-shadow: 3px 3px 2px rgba(255,255,255,0.35);
        background-color: rgba(0 0 0 / .65);
        color: transparent;
        -webkit-background-clip: text;
        background-clip: text;
      }

      .parser p {
        text-shadow: 0 1px 0 white;
      }

      .parser p:last-child {
        margin-bottom: 0;
      }

      .parser pre {
        padding: 20px;
        width: fit-content;
        margin: 0;
        margin-right: -40px;
        font-size: .6em;
        display: flex;
        align-items: end;
        text-shadow: 0 1px 0 rgb(255 255 255 / .6);
        font-weight: bold;
        overflow: auto;
        max-width: 100%;
        flex-shrink: 0;
        margin-top: auto;
      }

      .parser pre .ident {
        color: lch(30% 80 300);
      }

      .parser pre .string {
        color: lch(40% 108 144);
      }

      .parser pre .number {
        color: lch(35% 117 348);
      }

      .parser a {
        color: black;
      }

      .parser p:last-of-type a {
        font-size: 0.8em;
      }

      @media (width < 1200px) {
        .parser {
          flex-direction: column;
        }

        .parser pre {
          margin: 0;
          padding: 0;
        }
      }

      @media (width < 500px) {
        .parser {
          --inset: 25px;
        }

        .parser p, .parser pre {
          text-shadow: 0 1px 0 rgb(255 255 255 / .6);
        }
      }

      .modules {
        background: black;
        box-shadow: 0 0 0 1px rgb(255 255 255 / .2), 2px 2px 5px rgb(255 255 255 / .2);
        padding: 0;
        display: grid;
        grid-template-areas: "main input  input"
                             "main output json";
      }

      .modules .compartment {
        padding: max(20px, calc(var(--padding) / 2));
        border: 20px solid black;
        border-radius: 40px;
        --shadow-size: 20px;
        --inner-shadow-size: 2px;
        box-shadow: inset 0 0 0 1px rgb(255 255 255 / .15), inset -1px -1px var(--inner-shadow-size) rgb(255 255 255 / .3), inset 4px 8px var(--shadow-size) rgb(0 0 0 / .9);
        margin: 0;
        overflow: auto;
        background: #ba1921;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='32' viewBox='0 0 16 32'%3E%3Cg fill='%23fff' fill-opacity='0.05'%3E%3Cpath fill-rule='evenodd' d='M0 24h4v2H0v-2zm0 4h6v2H0v-2zm0-8h2v2H0v-2zM0 0h4v2H0V0zm0 4h2v2H0V4zm16 20h-6v2h6v-2zm0 4H8v2h8v-2zm0-8h-4v2h4v-2zm0-20h-6v2h6V0zm0 4h-4v2h4V4zm-2 12h2v2h-2v-2zm0-8h2v2h-2V8zM2 8h10v2H2V8zm0 8h10v2H2v-2zm-2-4h14v2H0v-2zm4-8h6v2H4V4zm0 16h6v2H4v-2zM6 0h2v2H6V0zm0 24h2v2H6v-2z'/%3E%3C/g%3E%3C/svg%3E");
      }

      .modules .compartment.main {
        grid-area: main;
        border-top-left-radius: 50px;
        border-bottom-left-radius: 50px;
        padding: 60px 60px 50px 60px;
        margin-right: -20px;
        --shadow-size: 40px;
        --inner-shadow-size: 4px;
      }

      .modules .compartment.main p:last-child {
        margin-bottom: 0;
      }

      .modules .compartment:not(.main) {
        display: flex;
        align-items: center;
        justify-content: center;
      }

      .modules h3 {
        text-transform: uppercase;
        font-size: 1.45em;
        border-top: 4px solid white;
        border-bottom: 4px solid white;
        line-height: 1.5em;
        width: fit-content;
      }

      .modules p {
        font-family: Georgia, 'Times New Roman', Times, serif;
        font-size: 0.87em;
      }
      
      .modules pre {
        font-size: 14px;
      }

      .modules .compartment.input {
        grid-area: input;
        border-top-right-radius: 50px;
      }

      .modules .compartment.output {
        grid-area: output;
        margin-top: -20px;
      }

      .modules .compartment.json {
        grid-area: json;
        margin-top: -20px;
        margin-left: -20px;
        border-bottom-right-radius: 50px;
      }

      @media (width < 1200px) {
        .modules {
          grid-template-areas: "main main"
                               "input input"
                               "output json";
        }

        .modules .compartment.main {
          border-top-right-radius: 50px;
          margin-right: 0;
        }

        .modules .compartment.input {
          margin-top: -20px;
        }

        .modules .compartment.output {
          border-bottom-left-radius: 50px;
        }

        .modules .compartment:not(.main) {
          justify-content: start;
        }
      }

      @media (width < 500px) {
        .modules {
          grid-template-areas: "main" "input" "output" "json";
        }

        .modules .compartment {
          border-radius: calc(var(--radius) * 1.5) !important;
          --shadow-size: 15px;
        }

        .modules .compartment.main {
          padding: 30px;
          --shadow-size: 25px;
        }

        .modules .compartment.json {
          margin: 0;
          margin-top: -20px;
        }

        .modules pre {
          font-size: 12px;
        }
      }

      footer {
        font-size: 12px;
        color: #666;
        text-align: center;
        padding-bottom: 20px;
      }

      @media (width < 600px) {
        .chart .line {
          display: none;
        }
      }
    </style>
  </body>
</html>
