@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-normal-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-normal-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-normal-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-normal-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/geist-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/geist-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--sed-white: #ffffff;--sed-black: #000000;--sed-signal: var(--sed-white);--sed-accent-ink: var(--sed-white);--sed-accent-fill: var(--sed-white);color-scheme:dark;--sed-ground: var(--sed-black);--sed-text: var(--sed-white);--sed-hairline: rgba(255, 255, 255, .18);--sed-dim: rgba(255, 255, 255, .55);--sed-font-ui: "Geist", -apple-system, system-ui, sans-serif;--sed-font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--gutter: clamp(24px, 5vw, 88px);--head-h: 96px;--bar-h: 32px;--col: 660px;--col-wide: 880px;--rail: 12rem;--rail-gap: clamp(24px, 4vw, 56px)}@media(pointer:coarse){:root{--bar-h: 44px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background:var(--sed-ground)}body{background:var(--sed-ground);color:var(--sed-text);font-family:var(--sed-font-ui);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;min-height:100svh;padding-bottom:calc(var(--bar-h) + env(safe-area-inset-bottom,0px))}main:has(.hero--split){flex:1;display:flex;flex-direction:column}::selection{background:var(--sed-white);color:var(--sed-black)}:focus-visible{outline:2px solid var(--sed-text);outline-offset:2px}a{color:inherit;text-decoration:underline;text-decoration-color:var(--sed-hairline);text-underline-offset:3px}a:hover{background:var(--sed-text);color:var(--sed-ground);text-decoration-color:transparent}strong{font-weight:600}code{font-family:var(--sed-font-mono);font-size:.82em}.skip-link{position:absolute;left:-9999px;top:0;background:var(--sed-ground);color:var(--sed-text);border:1px solid var(--sed-hairline);font-family:var(--sed-font-mono);font-size:12px;padding:10px 16px;z-index:10}.skip-link:focus{left:0}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.eyebrow{font-family:var(--sed-font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--sed-dim)}.site-head{position:relative;display:flex;align-items:center;padding:26px var(--gutter);z-index:20}.head-logo{display:inline-block;margin-left:-8px;padding:8px;text-decoration:none}.head-logo:hover{background:none;color:inherit}.head-logo svg{display:block;height:24px;width:auto}.site-foot{margin-top:auto;padding:clamp(24px,4vw,56px) var(--gutter) clamp(32px,5vw,72px)}.foot-mark{display:block;width:clamp(160px,24vw,340px);height:auto;color:var(--sed-text)}@supports (animation-timeline: view()){.foot-mark{view-timeline-name:--foot-mark}.foot-mark g{transform-box:fill-box;transform-origin:left center;animation:scan-print linear both;animation-timeline:--foot-mark;animation-range:entry calc(var(--r) * 1.5%) entry calc(var(--r) * 1.5% + 45%)}.foot-mark g:nth-child(2n){transform-origin:right center}}@keyframes scan-print{0%{opacity:0;transform:scaleX(0)}}.foot-line{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-top:clamp(32px,4vw,48px);padding-top:14px;border-top:1px solid var(--sed-hairline);font-family:var(--sed-font-mono);font-size:12px;color:var(--sed-dim)}.foot-line a{position:relative}.foot-line a:after{content:"";position:absolute;inset:-12px -6px}.status{position:fixed;inset:auto 0 0;z-index:40;display:flex;align-items:stretch;height:calc(var(--bar-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--sed-ground);border-top:1px solid var(--sed-hairline);font-family:var(--sed-font-mono);font-size:12px;line-height:1}.status-session{display:flex;align-items:center;padding-inline:12px;background:var(--sed-text);color:var(--sed-ground);font-weight:500}.status-windows{display:flex;min-width:0;margin:0;padding:0;list-style:none;overflow-x:auto;scrollbar-width:none}.status-windows::-webkit-scrollbar{display:none}.status-windows a{display:flex;align-items:center;height:100%;padding-inline:12px;color:var(--sed-dim);text-decoration:none;white-space:nowrap}.status-windows a[aria-current]{color:var(--sed-text)}.status-windows a:hover{color:var(--sed-ground)}.status-windows a:focus-visible{outline-offset:-4px}.status-right{display:none;align-items:center;margin-left:auto;padding-inline:12px;color:var(--sed-dim);white-space:nowrap}@media(min-width:960px){.status-right{display:flex}}.hero{padding-block:clamp(32px,7svh,80px)}.hero--split{--screen: calc(100svh - var(--head-h) - var(--bar-h));display:grid;grid-template-rows:minmax(calc(var(--screen) / 2),auto) minmax(220px,1fr);flex:1;min-height:var(--screen);padding-block:0}.hero-copy{align-self:center;min-width:0;max-width:960px;padding:32px var(--gutter)}.hero-copy h1{font-family:var(--sed-font-mono);font-size:clamp(34px,5.4vw,72px);font-weight:500;letter-spacing:-.045em;line-height:1.02;color:var(--sed-text);text-wrap:balance;animation:hero-rise .9s cubic-bezier(.22,1,.36,1) both}.hero-copy .eyebrow{display:block;margin-bottom:20px}.hero-copy .lede{max-width:56ch;margin-top:20px;color:var(--sed-dim)}.hero-copy .exhibit{margin:28px 0 0}@keyframes hero-rise{0%{opacity:0;transform:translateY(16px)}}.vt-nav .hero-copy h1{animation:none}.hero-copy h1 em{font-style:normal}.field-frame{position:relative;overflow:hidden;background:var(--sed-black);container-type:size}.plate{position:absolute;inset:auto 0 0;z-index:2;width:100%;height:64%;object-fit:cover;object-position:center bottom;mask-image:linear-gradient(180deg,transparent,#000 46%)}.field{--pitch: clamp(8px, calc(100cqh / var(--rows)), 18px);--tile: calc(var(--pitch) * var(--rows) * var(--knot-aspect));position:absolute;inset:0;height:calc(var(--pitch) * var(--rows));margin-block:auto;display:grid;grid-template-rows:repeat(var(--rows),var(--pitch));overflow:hidden;background:linear-gradient(rgb(from var(--sed-ground) r g b / .84) 0 0),url(/mark-ascii-tile.svg) center / var(--tile) 100% repeat-x}.field:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:var(--sed-ground);mask-image:linear-gradient(#000 0 0),url(/mark-ascii-tile.svg);mask-position:0 0,center;mask-size:auto,var(--tile) 100%;mask-repeat:no-repeat,repeat-x;mask-composite:exclude}.field:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--sed-black),transparent 14%,transparent 86%,var(--sed-black))}.field-row{display:flex;align-items:center;overflow:hidden;white-space:nowrap;contain:paint}.field-track{display:inline-flex;will-change:transform;transform:translate3d(-50%,0,0);backface-visibility:hidden;animation:drift var(--dur) linear infinite;animation-delay:var(--phase)}.field-track--rtl{animation-direction:reverse}.field-pause{position:absolute;right:var(--gutter);bottom:0;z-index:3;min-height:44px;padding:0 12px;appearance:none;border:0;background:var(--sed-ground);color:var(--sed-dim);font-family:var(--sed-font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.field-pause:hover{background:var(--sed-text);color:var(--sed-ground)}.field.is-paused .field-track,.field.is-paused .ch--blink{animation-play-state:paused}@keyframes drift{0%{transform:translate3d(-50%,0,0)}to{transform:translateZ(0)}}.tok{padding-right:1.6em;font-family:var(--sed-font-mono);font-size:calc(var(--pitch) * .64);line-height:1;color:var(--sed-white);opacity:var(--rest)}.ch--blink{animation:blink var(--blink) steps(1,end) infinite;animation-delay:var(--blink-delay)}@keyframes blink{0%,to{opacity:1}50%{opacity:.12}}.lede em{font-style:normal;font-weight:600;color:var(--sed-accent-ink)}.page-head{padding:40px var(--gutter) 64px}.page-head-inner{max-width:var(--col)}.page-head h1{margin-bottom:20px;font-family:var(--sed-font-mono);font-size:clamp(28px,2.4vw + 1rem,44px);font-weight:500;letter-spacing:-.04em;line-height:1.1;color:var(--sed-text);text-wrap:balance}.page-head .eyebrow{margin-bottom:16px}.stages{max-width:calc(var(--rail) + var(--rail-gap) + var(--col-wide) + var(--gutter) * 2);padding-inline:var(--gutter)}.stage{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);column-gap:var(--rail-gap);border-top:1px solid var(--sed-hairline);padding:56px 0}.stage-head{position:sticky;top:24px;align-self:start}.stage-name{font-family:var(--sed-font-mono);font-size:13px;font-weight:500;line-height:1.5;letter-spacing:.12em;text-transform:uppercase;color:var(--sed-text)}.stage-note{margin-top:6px;font-family:var(--sed-font-mono);font-size:12px;line-height:1.5;color:var(--sed-dim)}.stage-body{min-width:0;max-width:var(--col-wide)}.stage-lead{max-width:60ch;text-wrap:pretty}.page-head p{text-wrap:pretty}.reviewed{margin-top:20px;font-family:var(--sed-font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--sed-accent-ink)}.exhibit{position:relative;background:var(--sed-black);border:1px solid var(--sed-hairline);border-radius:12px;overflow:hidden;margin:0 0 40px}.exhibit-scroll{overflow-x:auto;padding:16px 52px 16px 18px}.exhibit-copy{position:absolute;top:50%;transform:translateY(-50%);right:9px;display:grid;place-items:center;width:26px;height:26px;appearance:none;background:transparent;border:none;border-radius:6px;color:#ffffff8c;cursor:pointer;transition:color .2s ease,background .2s ease,transform .3s cubic-bezier(.22,1,.36,1)}.exhibit-copy:after{content:"";position:absolute;inset:-9px}.exhibit-copy:active{transform:translateY(-50%) scale(.88)}.exhibit-copy:hover{background:#ffffff24;color:var(--sed-white)}.exhibit-copy.is-copied{color:var(--sed-white)}.exhibit code{font-family:var(--sed-font-mono);font-size:12px;line-height:1.9;color:#ffffff8c;white-space:pre}.exhibit .j-key{color:var(--sed-white)}.exhibit .j-str{color:#ffffffc7}.exhibit .j-lit,.exhibit .j-num{color:var(--sed-white)}@supports (animation-timeline: view()){.stage{animation:rise-in linear both;animation-timeline:view();animation-range:entry 0% entry 55%}}@keyframes rise-in{0%{opacity:0;transform:translateY(24px)}}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:.18s}@media(max-width:720px){:root{--head-h: 76px}.site-head{padding:16px 20px}.stage{grid-template-columns:minmax(0,1fr);row-gap:20px;padding:44px 0}.stage-head{position:static}.status-windows a{padding-inline:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}::view-transition-old(root),::view-transition-new(root){animation:none!important}.field-pause{display:none}}
