@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/barlow-condensed-600.ttf') format('truetype')}
@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/manrope-400.ttf') format('truetype')}
@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/manrope-600.ttf') format('truetype')}
:root{--background:#08090b;--foreground:#edeee9;--muted:#a9adb2;--line:#303237;--accent:#c8d1c1;--surface:#111316;--radius:4px;font-family:Manrope,sans-serif;color:var(--foreground);background:var(--background);color-scheme:dark;font-synthesis:none;scroll-behavior:smooth;scroll-padding-top:28px;scrollbar-color:#62676c var(--background)}
*{box-sizing:border-box}body{margin:0}::selection{background:var(--accent);color:var(--background)}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:6px}a:hover{color:var(--accent)}a:focus-visible,button:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid var(--foreground);outline-offset:6px;border-radius:2px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;vertical-align:middle;flex-shrink:0}.wrap{width:min(1296px,calc(100% - 96px));margin-inline:auto}.skip{position:absolute;top:-100px;left:24px;z-index:3;background:var(--foreground);color:var(--background);padding:14px}.skip:focus{top:16px}.skip:hover{color:var(--background)}.site-header{min-height:94px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:24px}.wordmark{font-size:29px;font-weight:600;letter-spacing:-.04em;text-decoration:none}.wordmark span{color:var(--muted)}.site-header nav{display:flex;gap:32px}.site-header nav a,.github-header{font-size:13px;text-decoration:none}.github-header{display:flex;gap:12px;align-items:center}h1,h2,h3,p{margin:0}h1,h2{font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:-.025em;line-height:.98;text-transform:uppercase}h1{font-size:clamp(52px,6.12vw,88px)}h1 span{color:var(--muted)}h2{font-size:clamp(40px,4.4vw,64px)}.intro{padding-top:54px;display:flex;align-items:flex-end;justify-content:space-between;gap:36px}.intro>p{max-width:320px;font-size:15px;line-height:1.8;color:var(--muted);padding-bottom:2px}.spotlight{display:grid;grid-template-columns:252px minmax(0,1fr);gap:24px;border-top:1px solid var(--line);margin-top:32px;padding-top:28px}.app-rail{padding-right:24px}.app-choice{display:block;position:relative;padding:22px 28px 22px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--muted)}.app-choice strong{font-size:24px;font-weight:400;letter-spacing:-.03em}.app-choice small{display:block;font-size:12px;line-height:1.6;margin-top:8px;color:var(--muted)}.app-choice svg{position:absolute;right:2px;top:28px;opacity:0}.app-choice:hover,.app-choice[aria-selected="true"]{color:var(--foreground)}.app-choice[aria-selected="true"] svg{opacity:1}.app-choice[aria-selected="true"]{border-bottom-color:var(--foreground)}.spotlight-panel{padding:20px 24px;background:var(--surface);min-width:0}.spotlight-panel[hidden]{display:none}.spotlight-media{height:296px;display:flex;justify-content:center;align-items:center;overflow:hidden}.spotlight-media img{display:block;max-width:100%;width:auto;height:100%;object-fit:contain}.spotlight-panel.artwork .spotlight-media img{height:225px;width:225px}.forest{background:#111916}.cobalt{background:#0e1420}.plum{background:#14101f}.spotlight-caption{margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:24px}.spotlight-caption h2{font-family:Manrope,sans-serif;font-size:22px;line-height:1.4;text-transform:none;letter-spacing:-.025em}.spotlight-caption a{font-size:12px;white-space:nowrap;display:flex;gap:10px;align-items:center}.media-note{font-size:12px;line-height:1.6;color:var(--muted);margin-top:8px}.opening-close{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:28px;padding-top:20px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.opening-close a{display:flex;gap:16px;align-items:center;text-decoration:none}.applications{padding-top:116px;padding-bottom:88px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:44px}.section-heading>p{font-size:14px;line-height:1.8;max-width:350px;color:var(--muted)}.app-story{border-top:1px solid var(--line);padding:44px 0 64px;scroll-margin-top:24px}.app-title{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.app-title h3{font-size:32px;letter-spacing:-.035em;font-weight:400}.app-title>span{font-size:12px;color:var(--muted)}.story-body{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:48px;align-items:center}.story-figure{margin:0;min-width:0}.story-image{display:flex;align-items:center;justify-content:center;padding:28px;min-height:380px}.story-image img{display:block;width:100%;height:auto;max-height:460px;object-fit:contain}.story-image.artwork img{max-width:260px}.story-figure figcaption{font-size:12px;line-height:1.7;color:var(--muted);margin-top:12px}.story-figure figcaption a{display:inline-flex;align-items:center;gap:8px}.story-figure figcaption svg{width:12px;height:12px}.story-copy h4{font-family:'Barlow Condensed',sans-serif;font-size:40px;font-weight:600;line-height:1.05;text-transform:uppercase;letter-spacing:-.025em;margin:0 0 22px;max-width:16ch}.story-copy>p{font-size:14px;line-height:1.9;color:var(--muted);max-width:65ch}.story-copy ul{padding:0;margin:24px 0 28px;list-style:none}.story-copy li{border-top:1px solid var(--line);padding:12px 0;font-size:12px;line-height:1.7}.story-copy li:last-child{border-bottom:1px solid var(--line)}.story-actions{display:flex;flex-wrap:wrap;gap:24px;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;border:1px solid #b8bcb6;background:var(--foreground);color:var(--background);border-radius:var(--radius);padding:13px 18px;text-decoration:none;font-size:12px;font-weight:600;min-height:46px}.button:hover{background:var(--accent);color:var(--background)}.button svg{width:16px;height:16px}.text-link{display:inline-flex;gap:12px;align-items:center;font-size:12px}.other-work{padding-top:32px}.other-work h2{font-family:Manrope,sans-serif;font-size:25px;text-transform:none;letter-spacing:-.035em;margin-bottom:30px}.project{border-top:1px solid var(--line);padding:24px 0;display:flex;align-items:center;justify-content:space-between;gap:24px}.project h3{font-size:20px;font-weight:400}.project h3 a{display:flex;gap:16px;align-items:center;text-decoration:none}.project p{font-size:13px;color:var(--muted);line-height:1.8;margin-top:8px}.project-meta{font-size:12px;color:var(--muted)}.project:last-child{border-bottom:1px solid var(--line)}.all-projects{margin-top:24px}.downloads{padding-block:72px;background:#111316;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.download{border-top:1px solid #393c40;padding:28px 0;display:flex;align-items:center;justify-content:space-between;gap:28px}.download h3{font-size:23px;letter-spacing:-.025em;font-weight:400}.download p{font-size:12px;color:var(--muted);margin-top:10px;font-variant-numeric:tabular-nums}.download-actions{display:flex;align-items:center;gap:32px}.release-link{display:inline-flex;align-items:center;gap:12px;font-size:12px}.release-link svg{width:14px;height:14px}.download-note{max-width:75ch;font-size:12px;line-height:1.9;color:var(--muted);margin-top:24px}.about{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-block:100px}.about p{max-width:65ch;font-size:15px;line-height:1.9}.about p+p{margin-top:20px;color:var(--muted)}.about .text-link{margin-top:28px}.site-footer{border-top:1px solid var(--line);padding-block:30px;display:flex;align-items:center;justify-content:space-between;gap:24px}.site-footer p,.site-footer>a:last-child{font-size:12px;color:var(--muted)}.site-footer>a:last-child{display:flex;gap:12px;align-items:center}.site-footer .wordmark{font-size:24px}.not-found{padding-block:100px}.not-found p{margin-block:28px;color:var(--muted)}.image-error{min-height:120px;display:flex;align-items:center;justify-content:center;padding:20px;color:var(--muted);font-size:13px;line-height:1.8;text-align:center}
@media(prefers-reduced-motion:no-preference){.spotlight[data-enhanced] .spotlight-panel:not([hidden]){animation:plate-on .35s cubic-bezier(.16,1,.3,1) both}@keyframes plate-on{from{filter:brightness(.7)}to{filter:brightness(1)}}}
@media(max-width:1100px){.intro{gap:28px}.intro>p{max-width:260px;font-size:14px}h1{font-size:clamp(52px,6.1vw,75px)}.spotlight{grid-template-columns:215px minmax(0,1fr)}.spotlight-caption{display:block}.spotlight-caption a{margin-top:12px}.story-body{gap:32px}.story-image{min-height:300px;padding:20px}.story-copy h4{font-size:34px}.app-choice strong{font-size:22px}.spotlight-caption h2{font-size:20px}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.site-header{min-height:80px;gap:16px}.wordmark{font-size:26px}.site-header nav{gap:20px}.site-header nav a{font-size:12px}.github-header{display:none}.intro{display:block;padding-top:40px}h1{font-size:clamp(44px,8.8vw,66px)}.intro>p{max-width:520px;margin-top:24px;font-size:14px;line-height:1.9}.spotlight{display:block;margin-top:28px;padding-top:0}.app-rail{display:flex;padding:0;gap:20px;margin-bottom:24px}.app-choice{flex:1;min-width:0;padding:20px 0 16px}.app-choice strong{display:block;font-size:17px;letter-spacing:-.03em;min-height:46px}.app-choice small{font-size:12px;line-height:1.7;min-height:34px}.app-choice svg{display:none}.spotlight-panel{padding:18px}.spotlight-media{height:260px}.spotlight-panel.artwork .spotlight-media img{width:180px;height:180px}.spotlight-caption{margin-top:20px}.spotlight-caption h2{font-size:19px;line-height:1.4}.spotlight-caption a{min-height:32px;display:inline-flex;margin-top:10px}.media-note{font-size:12px}.opening-close{display:block;font-size:12px;line-height:1.8;margin-top:24px}.opening-close a{margin-top:12px}.applications{padding-top:72px;padding-bottom:56px}.section-heading{display:block;margin-bottom:32px}.section-heading>p{margin-top:22px;font-size:13px}h2{font-size:44px}.app-title h3{font-size:27px}.app-title{align-items:baseline}.app-title>span{font-size:12px;max-width:130px;text-align:right;line-height:1.7}.app-story{padding-block:30px 42px}.story-body{grid-template-columns:1fr;gap:30px}.story-image{min-height:240px;padding:20px}.story-image img{max-height:400px}.story-image.artwork img{max-width:200px}.story-copy h4{font-size:36px;max-width:23ch;margin-bottom:18px}.story-copy>p{font-size:14px}.story-copy ul{margin-block:20px 24px}.other-work{padding-top:26px}.other-work h2{font-size:22px;line-height:1.3}.project{gap:18px}.project p{font-size:12px}.project-meta{font-size:12px}.downloads{padding-block:48px}.download{display:block;padding-block:24px}.download-actions{margin-top:22px;gap:22px;flex-wrap:wrap}.download h3{font-size:22px}.about{grid-template-columns:1fr;gap:30px;padding-block:64px}.about p{font-size:14px}.site-footer{flex-wrap:wrap;gap:20px}.site-footer p{font-size:12px}.site-footer>a:last-child{margin-left:auto;min-height:28px}}
@media(max-width:360px){.site-header nav{gap:13px}.site-header nav a{font-size:12px}.app-rail{gap:12px}.app-choice strong{font-size:15px}.app-choice small{font-size:12px}.app-title{display:block}.app-title>span{display:block;text-align:left;margin-top:10px;max-width:none}.spotlight-media{height:230px}}
.story-image[data-feature-gallery]{position:relative;aspect-ratio:16/10;min-height:0;max-height:calc(100svh - 180px)}
.story-image[data-feature-gallery] .feature-frame{position:absolute;inset:28px;opacity:0;pointer-events:none}
.story-image[data-feature-gallery] .feature-frame.is-current{opacity:1;pointer-events:auto}
.story-image[data-feature-gallery] .feature-frame img{width:100%;height:100%;max-height:none;object-fit:contain}
.feature-inline{margin:20px 0 0;min-width:0}
.feature-inline a{display:block;overflow:clip}
.feature-inline img{display:block;width:100%;height:auto;max-height:460px;object-fit:contain}
.feature-inline figcaption{font-size:12px;line-height:1.7;color:var(--muted);margin-top:12px}
.story-copy li:has(.feature-inline){flex-direction:column;align-items:stretch;justify-content:center}
.app-story[data-scene-scroll="true"] .feature-inline{display:none}
.app-story[data-scene-scroll="true"] .story-copy li{position:relative;padding-left:24px}
.app-story[data-scene-scroll="true"] .story-copy li::before{content:"";position:absolute;left:0;top:28%;bottom:28%;width:3px;background:var(--foreground);transform:scaleY(0);transition:transform .3s cubic-bezier(.16,1,.3,1)}
.app-story[data-scene-scroll="true"] .story-copy li>span{color:#7d8187;transition:color .3s,transform .3s cubic-bezier(.16,1,.3,1)}
.app-story[data-scene-scroll="true"] .story-copy li[data-reading]::before{transform:scaleY(1)}
.app-story[data-scene-scroll="true"] .story-copy li[data-reading]>span{color:var(--foreground);font-weight:600;transform:translateX(6px)}
.story-figure>figcaption{min-height:3.4em}
@media(prefers-reduced-motion:no-preference){.feature-frame{transition:opacity .24s cubic-bezier(.16,1,.3,1)}}
@media(max-width:760px){.story-image[data-feature-gallery] .feature-frame{inset:20px}}
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .story-body {
      view-timeline-name: --exhibition;
      view-timeline-axis: block;
    }
    .story-figure { position: relative; }
    .story-figure::before {
      content: "";
      position: absolute;
      inset: -14px 0 auto;
      height: 1px;
      background: var(--foreground);
      transform-origin: left;
      animation: exhibition-line linear both;
      animation-timeline: --exhibition;
      animation-range: cover 20% cover 80%;
    }
    .story-image { overflow: clip; }
    .story-image img {
      animation: exhibition-arrive linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 100%;
    }
    .story-copy li {
      animation: exhibition-read linear both;
      animation-timeline: view();
      animation-range: entry 15% cover 45%;
    }
    @keyframes exhibition-line {
      from { transform: scaleX(0); }
      to { transform: scaleX(1); }
    }
    @keyframes exhibition-arrive {
      from { transform: translateY(40px) scale(.92); }
      to { transform: translateY(0) scale(1); }
    }
    @keyframes exhibition-read {
      from { color: var(--muted); border-top-color: var(--line); }
      to { color: var(--foreground); border-top-color: var(--muted); }
    }
    @media (min-width: 900px) and (min-height: 700px) {
      .story-body { align-items: start; }
      .app-title {
        position: sticky;
        top: 0;
        z-index: 1;
        padding-block: 18px;
        background: var(--background);
        border-bottom: 1px solid var(--line);
      }
      .story-figure {
        position: sticky;
        top: 120px;
        align-self: start;
      }
      .story-image { min-height: 0; }
      .story-image[data-feature-gallery] { max-height: calc(100svh - 250px); }
      .story-image img { max-height: min(460px, calc(100svh - 200px)); }
      .story-copy ul { margin-block: 48px; }
      .story-copy li {
        display: flex;
        align-items: center;
        min-height: clamp(170px, 24svh, 260px);
        padding-block: 32px;
        font-size: clamp(18px, 1.6vw, 23px);
        line-height: 1.6;
      }
    }
  }
}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
