@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/atkinson-latin.1o9o6__l__p-w.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/atkinson-latin-ext.06adi5qjgm3bm.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--bg:#fff;--bg-2:#f4f4f2;--ink:#1a1a1e;--muted:#5a5a62;--line:#e3e3df;--line-2:#c8c8c2;--planned:#6e6e76;--s-dev:#8f5600;--s-ok:#2e7d32;--s-beta:#1f5fa8;--shadow:0 1px 2px #1a1a1e14,0 12px 32px #1a1a1e29;--font:"Atkinson Hyperlegible Next",system-ui,-apple-system,"Segoe UI",sans-serif;--wrap:1280px;--gutter:clamp(16px,4vw,40px);--r:6px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#141416;--bg-2:#1b1b1e;--ink:#ededeb;--muted:#a6a6ad;--line:#2b2b30;--line-2:#3f3f46;--planned:#8e8e96;--s-dev:#e0a040;--s-ok:#6cc070;--s-beta:#7faee6;--shadow:0 1px 2px #00000080,0 12px 32px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#141416;--bg-2:#1b1b1e;--ink:#ededeb;--muted:#a6a6ad;--line:#2b2b30;--line-2:#3f3f46;--planned:#8e8e96;--s-dev:#e0a040;--s-ok:#6cc070;--s-beta:#7faee6;--shadow:0 1px 2px #00000080,0 12px 32px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:106.25%}body{background:var(--bg);color:var(--ink);font:400 1.0625rem/1.6 var(--font);margin:0;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:2px}.wrap{max-width:var(--wrap);padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px));margin:0 auto}.skip{z-index:100;background:var(--ink);color:var(--bg);border-radius:var(--r);padding:8px 14px;position:absolute;top:-60px;left:16px}.skip:focus{top:8px}h1,h2,h3{letter-spacing:-.01em;text-wrap:balance;margin:0;font-weight:700;line-height:1.15}.lede{color:var(--muted);max-width:56ch;margin:16px 0 0;font-size:1.2rem;line-height:1.5}.todo{background:var(--bg-2);border:1px dashed var(--line-2);border-radius:4px;padding:1px 6px;font-style:normal}.site-head{border-bottom:1px solid var(--line)}.site-head-in{align-items:center;gap:16px;display:flex}.site-nav{margin-left:-12px;display:flex}.site-nav a{min-height:60px;color:var(--muted);align-items:center;padding:0 13px;text-decoration:none;display:flex}.site-nav a:hover{color:var(--ink)}.site-nav a[aria-current]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--ink);font-weight:700}.theme{border:1px solid var(--line);border-radius:var(--r);width:40px;height:40px;color:var(--ink);cursor:pointer;background:0 0;flex:none;place-items:center;margin-left:auto;display:grid}.theme:hover{border-color:var(--line-2)}.btn{border-radius:var(--r);background:var(--ink);min-height:48px;color:var(--bg);border:1px solid var(--ink);align-items:center;gap:8px;padding:0 20px;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{background:var(--muted);border-color:var(--muted)}.btn.ghost{color:var(--ink);border-color:var(--line-2);background:0 0}.btn.ghost:hover{border-color:var(--ink)}.more{text-underline-offset:4px;font-weight:700;text-decoration:underline;text-decoration-thickness:1px}.more:after{content:" →";white-space:pre;text-decoration:none;display:inline-block}.more:hover{text-decoration-thickness:2px}.hero{padding-top:clamp(48px,7vw,96px)}.hero-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);align-items:end;gap:32px 64px;display:grid}.hero h1{letter-spacing:-.02em;max-width:15ch;font-size:clamp(2.4rem,1.5rem + 3vw,3.9rem);line-height:1.06}.hero-sub{color:var(--muted);max-width:46ch;margin:20px 0 0;font-size:clamp(1.1rem,1rem + .4vw,1.3rem);line-height:1.5}.hero-sub strong{color:var(--ink)}.actions{flex-wrap:wrap;align-items:center;gap:12px 28px;margin:32px 0 0;display:flex}.facts{border-left:1px solid var(--line);gap:14px;margin:0;padding-left:24px;display:grid}.facts dt{color:var(--muted);font-size:.875rem}.facts dd{margin:2px 0 0}.shelf{margin-top:clamp(48px,6vw,72px)}.shelf-stage{aspect-ratio:100/41;position:relative}.shelf-item{top:0;left:var(--x);margin-top:var(--top);width:56%;z-index:var(--z);transition:transform .2s;position:absolute}.shelf-item img{box-shadow:var(--shadow);background:#111;border:1px solid #0003;border-radius:8px}.shelf-item:hover,.shelf-item.lit{z-index:10;transform:translateY(-8px)}.shelf-legend{border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 24px;margin:28px 0 0;padding:16px 0 0;list-style:none;display:grid}.shelf-legend a{align-items:center;gap:12px;text-decoration:none;display:flex}.shelf-legend img{flex:none}.shelf-legend strong{line-height:1.25;display:block}.shelf-legend small{color:var(--muted);font-size:.875rem;display:block}.shelf-legend a:hover strong{text-decoration:underline}.band{border-top:1px solid var(--line);padding-block:clamp(56px,7vw,96px)}.band.alt{background:var(--bg-2)}.hero{padding-bottom:clamp(48px,6vw,72px)}.cols{grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:24px clamp(32px,4vw,64px);display:grid}.band-head h2{font-size:clamp(1.6rem,1.3rem + 1vw,2rem)}.band-head p{color:var(--muted);margin:14px 0 0}.band-head .more{margin-top:18px;display:inline-block}.band-body{min-width:0}.sec-foot{margin:28px 0 0}.app-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 32px;display:grid}.app-card a{color:inherit;gap:14px;text-decoration:none;display:grid}.app-card .shot{aspect-ratio:16/10;border:1px solid var(--line);border-radius:var(--r);background:var(--bg-2);display:block;overflow:hidden}.app-card .shot img{object-fit:cover;object-position:left top;width:100%;height:100%}.app-card a:hover .shot{border-color:var(--line-2)}.app-name{align-items:center;gap:12px;display:flex}.app-name img{flex:none}.app-name strong{font-size:1.25rem;line-height:1.2;display:block}.app-name small{color:var(--muted);font-size:.875rem;display:block}.app-card a:hover .app-name strong{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 16px;font-size:.875rem;display:flex}.status{align-items:center;gap:6px;display:inline-flex}.status:before{content:"";background:currentColor;border-radius:50%;width:8px;height:8px}.s-dev{color:var(--s-dev)}.s-available{color:var(--s-ok)}.s-beta{color:var(--s-beta)}.s-planned{color:var(--planned)}.platforms{color:var(--muted);flex-wrap:wrap;margin:0;padding:0;font-size:.875rem;list-style:none;display:flex}.platforms>*+:before{content:"·";margin:0 7px}.sub{align-items:baseline;gap:12px;margin:64px 0 0;padding-bottom:12px;font-size:1.15rem;display:flex}.sub small{color:var(--muted);font-size:.875rem;font-weight:400}.planned-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:0 28px;margin:0;padding:0;list-style:none;display:grid}.planned-card{border-top:1px solid var(--line);align-content:start;gap:2px;padding:14px 0 18px;display:grid}.planned-card .name{font-size:1.05rem}.planned-card .domain{color:var(--muted);font-size:.875rem}.planned-card .lead{color:var(--muted);margin-top:6px;font-size:.95rem;line-height:1.5}.jflib-in{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:32px clamp(32px,4vw,56px);display:grid}.jflib-in p{max-width:52ch;margin:0 0 16px}.jflib-in p:last-child{margin-bottom:0}.stack{gap:8px;margin:0;display:grid;container-type:inline-size}.stack-apps{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.stack-apps span{border-radius:var(--r);background:var(--app);color:#fff;align-items:flex-end;min-height:76px;padding:10px 12px;font-size:.95rem;font-weight:700;line-height:1.2;display:flex}.stack-lib{border-radius:var(--r);background:var(--bg);border:1px solid var(--line-2);align-items:center;gap:16px;padding:18px 20px;display:flex}.stack-lib strong{font-size:1.5rem}.stack-lib small{color:var(--muted);font-size:.875rem;display:block}.shapes{flex:none}.stack-os{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;display:grid}.stack-os span{text-align:center;border:1px solid var(--line-2);border-radius:4px;padding:8px 4px;font-size:.85rem}.stack-os span.soon{color:var(--muted);border-style:dashed}.stack figcaption{color:var(--muted);margin-top:4px;font-size:.875rem}@container (max-width:500px){.stack-apps{grid-template-columns:repeat(2,minmax(0,1fr))}.stack-apps span{min-height:52px}}.road3{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;display:grid}.road3 h3{border-bottom:1px solid var(--ink);align-items:baseline;gap:8px;padding-bottom:10px;font-size:1.15rem;display:flex}.road3 h3 small{color:var(--muted);margin-left:auto;font-size:.875rem;font-weight:400}.road3 ul{margin:0;padding:0;list-style:none}.road3 li{border-bottom:1px solid var(--line);gap:2px;padding:12px 0;display:grid}.pill{color:var(--muted);justify-self:start;align-items:center;gap:8px;font-size:.875rem;display:inline-flex}.pill:before{content:"";background:var(--app,var(--planned));border-radius:2px;flex:none;width:10px;height:10px}.lanes{border-top:1px solid var(--ink);grid-template-columns:200px repeat(3,minmax(0,1fr));display:grid}.lanes>div{border-bottom:1px solid var(--line);padding:16px 16px 18px 0}.lanes .lane-head{color:var(--muted);padding-block:12px;font-size:.875rem;font-weight:700}.lanes .lane-app{align-items:flex-start;gap:10px;font-size:1.1rem;font-weight:700;line-height:1.25;display:flex}.lanes .lane-app:before{content:"";background:var(--app);border-radius:2px;flex:none;width:12px;height:12px;margin-top:5px}.lanes .lane-app small{color:var(--muted);margin-top:2px;font-size:.85rem;font-weight:400;display:block}.lanes ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.lanes li{padding-left:16px;line-height:1.45;position:relative}.lanes li:before{content:"";background:var(--app);border-radius:50%;width:6px;height:6px;position:absolute;top:.6em;left:0}.lanes .done li:before{border:1.5px solid var(--app);background:0 0}.lanes .empty{color:var(--muted)}.legend{color:var(--muted);margin:0 0 24px;font-size:.95rem}.news-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;display:grid}.news-card{border-top:1px solid var(--ink);align-content:start;gap:8px;padding-top:14px;display:grid}.news-card time,.news-item time{color:var(--muted);font-size:.875rem}.news-card h3{font-size:1.2rem;line-height:1.3}.news-card h3 a{text-decoration:none}.news-card h3 a:hover{text-decoration:underline}.news-card p{color:var(--muted);margin:0;line-height:1.55}.news-list{border-top:1px solid var(--ink)}.news-item{border-bottom:1px solid var(--line);grid-template-columns:160px minmax(0,1fr);gap:8px 32px;padding:28px 0;display:grid}.news-item>div:first-child{align-content:start;gap:6px;display:grid}.news-item>div:first-child br{display:none}.news-item h2{margin:0 0 8px;font-size:clamp(1.3rem,1.1rem + .6vw,1.6rem)}.news-item h2 a{text-decoration:none}.news-item h2 a:hover{text-decoration:underline}.news-item p{color:var(--muted);max-width:68ch;margin:0}.news-item .more{margin-top:10px;display:inline-block}.article{max-width:720px;margin:0 auto}.article p{margin:0 0 1.2em;font-size:1.125rem;line-height:1.7}.article h2{margin:1.6em 0 .5em;font-size:1.5rem}.article figure{margin:2em 0}.article figcaption{color:var(--muted);margin-top:10px;font-size:.875rem}.keybox{border:1px solid var(--line);border-radius:var(--r);background:var(--bg);padding:18px 22px 8px}.keybox-head{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding-bottom:14px;display:flex}.keybox-head svg{flex:none}.keybox-head strong{font-size:1.1rem;display:block}.keybox-head small{color:var(--muted);font-size:.875rem;display:block}.keybox ul{margin:0;padding:0;list-style:none}.keybox li{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:11px 0;display:flex}.keybox li:last-child{border-bottom:0}.keybox li span:first-child{background:var(--app,var(--planned));border-radius:2px;flex:none;width:12px;height:12px}.keybox li em{color:var(--muted);text-align:right;margin-left:auto;font-size:.875rem;font-style:normal}.page-hero{padding-block:clamp(48px,6vw,80px) clamp(28px,4vw,44px)}.page-hero h1{letter-spacing:-.015em;max-width:20ch;font-size:clamp(2.2rem,1.6rem + 2.4vw,3.25rem)}.page-body{padding-bottom:clamp(64px,8vw,112px)}.filters{flex-wrap:wrap;gap:8px;margin:0 0 40px;display:flex}.filters button{border:1px solid var(--line-2);border-radius:var(--r);height:40px;color:var(--ink);font:400 .95rem var(--font);cursor:pointer;background:0 0;padding:0 15px}.filters button:hover{border-color:var(--ink)}.filters button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.filters .sep{background:var(--line);width:1px;margin:4px 6px}.app-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;gap:24px clamp(28px,4vw,48px);padding-block:40px;display:grid}.app-rows .app-row:first-child{border-top:0;padding-top:0}.app-row .shot{border:1px solid var(--line);border-radius:var(--r);display:block;overflow:hidden}.app-row h2{align-items:center;gap:12px;font-size:1.75rem;display:flex}.app-row h2 img{flex:none}.app-row .domain{color:var(--muted);margin:6px 0 14px;font-size:.875rem}.app-row p.text{max-width:48ch;margin:14px 0 12px}.app-row .btn{margin-top:22px}[hidden]{display:none!important}.prose{max-width:720px}.prose h2{margin:1.8em 0 .5em;font-size:1.5rem}.prose h2:first-child{margin-top:0}.prose p{margin:0 0 1.1em;font-size:1.125rem;line-height:1.7}.split{grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);align-items:start;gap:32px clamp(36px,6vw,80px);display:grid}.legal{max-width:760px;padding-bottom:clamp(64px,8vw,112px)}.legal h2{margin:0 0 .6em;font-size:1.75rem}.legal h3{margin:1.8em 0 .4em;font-size:1.1rem}.legal address{font-style:normal;line-height:1.7}.legal p{margin:0 0 1em}.stand{color:var(--muted);margin-top:2em;font-size:.9rem}.site-foot{background:var(--bg-2);border-top:1px solid var(--line)}.foot-grid{grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:32px;padding-top:48px;padding-bottom:44px;display:grid}.foot-brand{align-items:center;gap:10px;font-size:1.25rem;font-weight:700;text-decoration:none;display:inline-flex}.foot-about p{color:var(--muted);max-width:34ch;margin:12px 0 0}.draft-note{font-size:.875rem}.site-foot h2{margin:0 0 12px;font-size:.9rem}.site-foot h2:not(:first-child){margin-top:28px}.site-foot ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.site-foot li a{color:var(--muted);text-decoration:none}.site-foot li a:hover{color:var(--ink);text-decoration:underline}.site-foot .dot{background:var(--app);border-radius:2px;width:10px;height:10px;margin-right:10px;display:inline-block}@media (max-width:1000px){.cols,.hero-grid,.jflib-in,.app-row,.split{grid-template-columns:1fr}.band-head{max-width:60ch}.facts{border-left:0;border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));padding-top:20px;padding-left:0}.road3,.news-grid{grid-template-columns:1fr}.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.foot-about{grid-column:1/-1}.lanes{border-top:0;grid-template-columns:1fr}.lanes .lane-head{display:none}.lanes>div{padding-right:0}.lanes .lane-app{border-top:1px solid var(--ink);margin-top:20px;padding-top:20px}.lanes>div[data-col]:before{content:attr(data-col);color:var(--muted);margin-bottom:8px;font-size:.875rem;font-weight:700;display:block}}@media (max-width:800px){.site-nav{scrollbar-width:none;min-width:0;overflow-x:auto}.site-nav::-webkit-scrollbar{display:none}.site-nav a{white-space:nowrap}.shelf.wrap{padding-left:0;padding-right:0}.shelf-stage{aspect-ratio:auto;scroll-snap-type:x mandatory;padding:12px max(var(--gutter),env(safe-area-inset-left,0px)) 16px;scroll-padding-inline:var(--gutter);gap:12px;display:flex;overflow-x:auto}.shelf-stage:after{content:"";flex:0 0 1px}.shelf-item{scroll-snap-align:start;flex:0 0 82%;width:auto;margin-top:0;position:static;transform:none!important}.shelf-legend{margin:12px max(var(--gutter),env(safe-area-inset-right,0px)) 0 max(var(--gutter),env(safe-area-inset-left,0px));grid-template-columns:repeat(2,minmax(0,1fr))}.app-grid{grid-template-columns:1fr}.stack-os{grid-template-columns:repeat(3,minmax(0,1fr))}.news-item{grid-template-columns:1fr}.news-item>div:first-child{flex-wrap:wrap;gap:4px 16px;display:flex}}@media (max-width:560px){.facts,.shelf-legend,.foot-grid{grid-template-columns:1fr}.site-nav a{padding:0 9px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
