:root{--strawberry-300: #ed5353;--strawberry-500: #c6262e;--orange-300: #ffa154;--orange-500: #f37329;--banana-300: #ffe16b;--banana-500: #f9c440;--lime-300: #9bdb4d;--lime-500: #68b723;--mint-300: #43d6b5;--mint-500: #28bca3;--blueberry-300: #64baff;--blueberry-500: #3689e6;--blueberry-700: #0d52bf;--grape-300: #cd9ef7;--grape-500: #a56de2;--grape-700: #7239b3;--bubblegum-300: #f4679d;--bubblegum-500: #de3e80;--cocoa-300: #8a715e;--cocoa-500: #715344;--slate-300: #95a3ab;--slate-500: #667885;--bg: #fafafa;--surface: #ffffff;--surface-raised: #ffffff;--titlebar: linear-gradient(#f5f5f5, #e9e9e9);--text: #333333;--text-strong: #1a1a1a;--muted: #7e8087;--border: rgba(0, 0, 0, .1);--link: var(--blueberry-500);--hero-glow: radial-gradient(60rem 28rem at 50% -6rem, rgba(165, 109, 226, .18), transparent 70%);--shadow-window: 0 0 0 1px rgba(0, 0, 0, .08), 0 3px 4px rgba(0, 0, 0, .12), 0 14px 28px -6px rgba(0, 0, 0, .22);--shadow-card: 0 0 0 1px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .08), 0 4px 12px -4px rgba(0, 0, 0, .1);--shadow-card-hover: 0 0 0 1px rgba(0, 0, 0, .06), 0 3px 6px rgba(0, 0, 0, .1), 0 16px 32px -10px rgba(0, 0, 0, .22);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #1d1f22;--surface: #2a2d31;--surface-raised: #303338;--titlebar: linear-gradient(#3a3d42, #33363b);--text: #d4d4d4;--text-strong: #fafafa;--muted: #9a9ca3;--border: rgba(255, 255, 255, .09);--link: var(--blueberry-300);--hero-glow: radial-gradient(60rem 28rem at 50% -6rem, rgba(165, 109, 226, .22), transparent 70%);--shadow-window: 0 0 0 1px rgba(0, 0, 0, .5), 0 3px 4px rgba(0, 0, 0, .3), 0 14px 28px -6px rgba(0, 0, 0, .55);--shadow-card: 0 0 0 1px rgba(255, 255, 255, .06), 0 1px 2px rgba(0, 0, 0, .3);--shadow-card-hover: 0 0 0 1px rgba(255, 255, 255, .08), 0 16px 32px -10px rgba(0, 0, 0, .6)}}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:4.5rem}body.home{margin:0;background:var(--hero-glow),var(--bg);background-repeat:no-repeat;color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.home h1,.home h2,.home h3,.home h4{color:var(--text-strong);letter-spacing:-.02em;line-height:1.15;margin:0}.home p{margin:0}.home a{color:var(--link);text-decoration:none}.home a:hover{text-decoration:underline;text-underline-offset:.2em}.home a:focus-visible,.home .button:focus-visible{outline:2px solid var(--blueberry-300);outline-offset:3px;border-radius:4px}.home ul{list-style:none;margin:0;padding:0}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem clamp(1rem,4vw,2rem);background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--border);font-size:.9rem}.topbar-brand{display:inline-flex;align-items:center;gap:.55rem;font-weight:700;color:var(--text-strong)!important;letter-spacing:-.01em}.brand-mark{width:1.25rem;height:1.25rem;border-radius:24%;box-shadow:0 0 0 1px #0000001f,0 1px 2px #00000040}.topbar ul{display:flex;gap:clamp(.9rem,3vw,1.75rem)}.topbar ul a{color:var(--text);font-weight:500}.hero{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:46rem;margin:0 auto;padding:clamp(3rem,9vw,6rem) 1rem 4rem}.hero h1{font-size:clamp(2.4rem,7vw,4rem);font-weight:800;letter-spacing:-.035em;margin-top:1.25rem}.hero-lede{margin-top:1.1rem!important;max-width:36rem;font-size:clamp(1.1rem,2.4vw,1.3rem);color:var(--muted)}.hero-pill{display:inline-flex;align-items:center;gap:.4rem;margin-top:2rem;padding:.3rem .85rem;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-card);color:var(--text)!important;font-size:.85rem;font-weight:500}.hero-pill span{color:var(--grape-500)}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:2rem}.hero-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1.25rem;margin-top:1.75rem!important;font-size:.9rem}.hero-links a{color:var(--muted)}.home .button{display:inline-block;padding:.6rem 1.35rem;border-radius:.55rem;background:linear-gradient(var(--surface-raised),color-mix(in srgb,var(--surface-raised) 92%,#000));color:var(--text-strong);font-weight:600;font-size:1rem;box-shadow:inset 0 1px #ffffff59,0 0 0 1px var(--border),0 1px 2px #00000024,0 3px 6px -2px #0000001f;transition:transform .12s ease,box-shadow .12s ease}.home .button:hover{text-decoration:none;transform:translateY(-1px)}.home .button:active{transform:translateY(0)}.home .button.suggested{background:linear-gradient(var(--blueberry-300),var(--blueberry-500));color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.25);box-shadow:inset 0 1px #fff6,0 0 0 1px var(--blueberry-700),0 1px 2px #0003,0 6px 14px -4px #3689e68c}.app-icon{--c1: var(--slate-300);--c2: var(--slate-500);position:relative;flex:0 0 auto;display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:24%;overflow:hidden;background:linear-gradient(var(--c1),var(--c2));box-shadow:inset 0 1px #ffffff73,inset 0 -1px #0000001f,0 0 0 1px #0000001f,0 2px 3px #0000002e,0 6px 12px -4px #00000040;color:#fff;font-weight:800;font-size:1.45rem;letter-spacing:-.04em;text-shadow:0 1px 2px rgba(0,0,0,.3)}.app-icon.is-glossy:after{content:"";position:absolute;inset:0 0 50%;border-radius:inherit;border-bottom-left-radius:50% 18%;border-bottom-right-radius:50% 18%;background:linear-gradient(#ffffff47,#ffffff0a);pointer-events:none}.app-icon>img{display:block;width:100%;height:100%}.app-icon-hero{--c1: var(--grape-300);--c2: var(--grape-700);width:7rem;height:7rem;box-shadow:inset 0 2px #ffffff73,inset 0 -2px #00000026,0 0 0 1px #00000026,0 4px 6px #0000002e,0 22px 40px -12px #7239b399}.page-head{max-width:46rem;margin:0 auto;padding:clamp(3rem,8vw,5rem) 1rem 0;text-align:center}.page-head h1{margin-top:.75rem;font-size:clamp(2.2rem,6vw,3.4rem);font-weight:800;letter-spacing:-.035em}.home main.prose{max-width:40rem;padding-block:2rem clamp(3rem,8vw,5rem)}.prose p{font-size:1.15rem;line-height:1.75}.prose p+p{margin-top:1.4rem}.home .about-intro{display:flex;align-items:center;gap:1.25rem;margin-bottom:2rem}.about-avatar{flex:0 0 auto;width:7rem;height:7rem;border-radius:50%;box-shadow:var(--shadow-card)}.home .about-name{color:var(--text-strong);font-size:1.4rem;font-weight:750;letter-spacing:-.02em}.home .about-role{margin-top:.15rem;color:var(--muted);font-size:1.05rem}.home .legal h2{margin-top:2.25rem;font-size:1.3rem;font-weight:700}.home .legal h2+p,.home .legal h2+ul{margin-top:.6rem}.home .legal p+p,.home .legal p+ul,.home .legal ul+p{margin-top:.9rem}.home .legal ul{padding-left:1.3rem;list-style:disc;font-size:1.1rem;line-height:1.7}.legal li+li{margin-top:.3rem}.home .legal p{font-size:1.1rem}.home .legal a{text-decoration:underline;text-underline-offset:.2em}.signup-consent a,.footer-fine a{color:inherit;text-decoration:underline;text-underline-offset:.2em}.home .signup-consent{margin-top:.75rem;color:var(--muted);font-size:.8rem}.home main{max-width:68rem;margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}.home main:not(.post)>section{padding:clamp(3rem,8vw,5.5rem) 0}.home main:not(.post)>section+section{border-top:1px solid var(--border)}.section-head{max-width:40rem;margin:0 auto 3rem;text-align:center}.section-head h2{font-size:clamp(1.9rem,4.5vw,2.6rem);font-weight:800}.section-head p{margin-top:.75rem;color:var(--muted);font-size:1.15rem}.window-titlebar{display:flex;align-items:center;gap:.75rem;padding:.6rem .8rem;background:var(--titlebar);border-bottom:1px solid var(--border)}.window-title{flex:1;text-align:center;font-size:.85rem;font-weight:600;color:var(--muted)}.window-close{position:relative;width:1.05rem;height:1.05rem;border-radius:50%;background:linear-gradient(#7e7e7e,#5c5c5c);box-shadow:inset 0 1px #ffffff40}.window-close:before,.window-close:after{content:"";position:absolute;top:50%;left:50%;width:.5rem;height:2px;border-radius:1px;background:#fff;transform:translate(-50%,-50%) rotate(45deg)}.window-close:after{transform:translate(-50%,-50%) rotate(-45deg)}.project-group+.project-group{margin-top:3.5rem}.group-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;margin-bottom:1.25rem}.group-head h3{font-size:1.35rem;font-weight:700}.group-head p{color:var(--muted);font-size:.95rem}.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:2rem 1rem}.app-tile{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem .5rem;border-radius:1rem;text-align:center;color:var(--text-strong)!important;transition:background .16s ease}.app-tile:hover{text-decoration:none!important;background:color-mix(in srgb,var(--text-strong) 5%,transparent)}.app-tile .app-icon{width:5.5rem;height:5.5rem;margin-bottom:.35rem;transition:transform .16s ease,box-shadow .16s ease}.app-tile:hover .app-icon{transform:translateY(-3px) scale(1.03)}.app-tile:active .app-icon{transform:scale(.97)}.app-name{font-size:.98rem;font-weight:600;line-height:1.25}.app-dialog{width:min(32rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);padding:0;border:0;border-radius:.75rem;background:var(--surface);color:var(--text);box-shadow:var(--shadow-window),0 30px 60px -12px #00000059;overflow:auto;opacity:1;transform:none;transition:opacity .18s ease,transform .18s ease,overlay .18s allow-discrete,display .18s allow-discrete}.app-dialog::backdrop{background:#00000059;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);transition:background .18s ease,overlay .18s allow-discrete,display .18s allow-discrete}@starting-style{.app-dialog[open]{opacity:0;transform:translateY(8px) scale(.97)}.app-dialog[open]::backdrop{background:#0000}}.app-dialog .window-titlebar{position:sticky;top:0;z-index:1}.app-dialog .window-titlebar form{display:flex}.app-dialog .window-title{margin-right:1.8rem}.app-dialog .window-close{padding:0;border:0;cursor:pointer}.app-dialog .window-close:focus-visible{outline:2px solid var(--blueberry-300);outline-offset:2px}.app-dialog-body{display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem}.app-dialog-head{display:flex;align-items:center;gap:1.1rem}.app-dialog-head .app-icon{width:5rem;height:5rem}.app-dialog-head>div{min-width:0}.app-dialog-head h4{margin-bottom:.4rem;font-size:clamp(1.2rem,5vw,1.5rem);overflow-wrap:anywhere;font-weight:800}.app-dialog-body>p{color:var(--muted);font-size:1rem;line-height:1.6}.app-dialog-actions{display:flex;flex-wrap:wrap;gap:.6rem}.app-dialog-actions .button{padding:.5rem 1.1rem;font-size:.95rem}.status{padding:.1rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em;background:color-mix(in srgb,var(--lime-500) 16%,transparent);color:color-mix(in srgb,var(--lime-500) 70%,var(--text-strong))}.status.is-building{background:color-mix(in srgb,var(--banana-500) 22%,transparent);color:color-mix(in srgb,var(--orange-500) 75%,var(--text-strong))}.status.is-paused,.status.is-archived{background:color-mix(in srgb,var(--slate-300) 20%,transparent);color:var(--muted)}.is-archived .app-icon{filter:saturate(.55)}.home .list-box{max-width:50rem;margin:0 auto;overflow:hidden;border-radius:.9rem;background:var(--surface);box-shadow:var(--shadow-card)}.list-box li+li{border-top:1px solid var(--border)}.list-box a{display:flex;align-items:baseline;justify-content:space-between;gap:.4rem 1.5rem;padding:.95rem 1.25rem;color:var(--text-strong);transition:background .12s ease}.list-box a:hover{text-decoration:none;background:color-mix(in srgb,var(--blueberry-500) 7%,transparent)}.list-title{font-weight:600}.list-box time{flex:0 0 auto;color:var(--muted);font-size:.875rem;white-space:nowrap}.section-more{margin-top:1.75rem!important;text-align:center}.page-head>p{margin-top:.75rem;color:var(--muted);font-size:1.15rem}.home main.writing-index{max-width:50rem;padding-block:2.5rem clamp(3rem,8vw,5rem)}.post-list a{align-items:flex-start;padding:1.1rem 1.35rem}.post-list-text{display:flex;flex-direction:column;gap:.3rem;min-width:0}.post-list-desc{color:var(--muted);font-size:.93rem;font-weight:400;line-height:1.5}.post-list-meta{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto;gap:.15rem;color:var(--muted);font-size:.85rem;white-space:nowrap}.empty-note{color:var(--muted);text-align:center}.kind{padding:.1rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em;background:color-mix(in srgb,var(--slate-300) 20%,transparent);color:var(--muted)}.kind.is-featured,.kind.is-ours{background:color-mix(in srgb,var(--grape-500) 14%,transparent);color:color-mix(in srgb,var(--grape-500) 75%,var(--text-strong))}.kind.is-release{background:color-mix(in srgb,var(--blueberry-500) 14%,transparent);color:color-mix(in srgb,var(--blueberry-500) 75%,var(--text-strong))}.kind.is-update{background:color-mix(in srgb,var(--mint-500) 16%,transparent);color:color-mix(in srgb,var(--mint-500) 65%,var(--text-strong))}.kind.is-draft{background:color-mix(in srgb,var(--banana-500) 22%,transparent);color:color-mix(in srgb,var(--orange-500) 75%,var(--text-strong))}.news-list a{align-items:flex-start;justify-content:flex-start;gap:1.1rem;padding:1.1rem 1.35rem}.entry-thumb{flex:0 0 auto;width:7.5rem;aspect-ratio:16 / 10;overflow:hidden;border-radius:.5rem;background:var(--border);box-shadow:0 0 0 1px var(--border)}.home .entry-thumb img{display:block;width:100%;height:100%;object-fit:cover}.entry-thumb.is-icon{display:grid;place-items:center;background:color-mix(in srgb,var(--slate-300) 14%,transparent)}.home .entry-thumb.is-icon img{width:auto;height:64%;object-fit:contain;border-radius:24%}.featured-post .featured-thumb{width:13rem;border-radius:.65rem}.news-list .app-icon{width:2.75rem;height:2.75rem;margin-top:.15rem}.news-list-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .6rem;color:var(--muted);font-size:.85rem;font-weight:400}.home main.post{position:relative;z-index:1;max-width:44rem;padding-block:clamp(2.5rem,7vw,4.5rem) clamp(3rem,8vw,5rem)}.post-backdrop{position:absolute;top:0;left:0;right:0;z-index:0;height:clamp(26rem,60vh,38rem);overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,#000 25%,transparent);mask-image:linear-gradient(to bottom,#000 25%,transparent)}.home .post-backdrop img{width:100%;height:100%;object-fit:cover;filter:blur(56px) saturate(140%);opacity:.35;transform:scale(1.2)}.home .post-cover{margin:1.75rem 0 0}.home .post-cover img{display:block;width:100%;border-radius:.9rem;box-shadow:var(--shadow-window)}.post-cover figcaption{margin-top:.6rem;color:var(--muted);font-size:.8rem;text-align:right}.post-cover figcaption a{color:inherit;text-decoration:underline}.breadcrumbs{margin-bottom:1.5rem;font-size:.9rem;font-weight:500}.home .breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.25rem;margin:0;padding:0;list-style:none}.breadcrumbs li+li:before{content:"›";margin-right:.35rem;color:var(--muted)}.post-head h1{font-size:clamp(2rem,5.5vw,3rem);font-weight:800;letter-spacing:-.03em}.post-lede{margin-top:1rem!important;color:var(--muted);font-size:1.2rem;line-height:1.55}.post-meta{display:flex;flex-wrap:wrap;gap:.25rem .5rem;color:var(--muted);font-size:.9rem}.post-meta a{color:var(--text-strong);font-weight:600}.byline{display:flex;align-items:center;gap:.75rem;margin-top:1.25rem}.byline-avatar,.author-avatar{flex:0 0 auto;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-card)}.byline-avatar{width:2.5rem;height:2.5rem}.tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.9rem!important}.tags li{padding:.1rem .6rem;border-radius:999px;background:color-mix(in srgb,var(--grape-500) 12%,transparent);color:color-mix(in srgb,var(--grape-500) 75%,var(--text-strong));font-size:.78rem;font-weight:600}.post-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:1rem}.project-chip{display:inline-flex;align-items:center;gap:.55rem;color:var(--text-strong)!important;font-weight:600}.project-chip .app-icon{width:1.75rem;height:1.75rem}.post-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:2.5rem}.post-head{padding-bottom:2rem;margin-bottom:2.25rem;border-bottom:1px solid var(--border)}.home .post-body{font-size:1.1rem;line-height:1.75}.home .post-body>*+*{margin-top:1.25rem}.home .post-body h2{margin-top:2.75rem;font-size:1.6rem;font-weight:750}.home .post-body h3{margin-top:2.25rem;font-size:1.25rem;font-weight:700}.home .post-body h2+*,.home .post-body h3+*{margin-top:.75rem}.home .post-body a{text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--link) 40%,transparent);text-underline-offset:.2em}.home .post-body a:hover{text-decoration-color:var(--link)}.home .post-body strong{color:var(--text-strong);font-weight:650}.home .post-body ul,.home .post-body ol{padding-left:1.4rem}.home .post-body ul{list-style:disc}.home .post-body ol{list-style:decimal}.home .post-body li+li{margin-top:.4rem}.home .post-body li::marker{color:var(--muted)}.home .post-body blockquote{margin-inline:0;padding:.25rem 0 .25rem 1.25rem;border-left:3px solid var(--grape-300);color:var(--muted)}.home .post-body hr{margin-block:2.5rem;border:0;border-top:1px solid var(--border)}.home .post-body img,.home .post-body iframe{display:block;max-width:100%;height:auto;border:0;border-radius:.75rem;box-shadow:var(--shadow-card)}.home .post-body iframe{width:100%;height:500px}.home .post-body :not(pre)>code{padding:.1em .4em;border-radius:.35rem;background:color-mix(in srgb,var(--text-strong) 7%,transparent);font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,Consolas,monospace;font-size:.88em}.home .post-body pre{overflow-x:auto;padding:1.1rem 1.25rem;border-radius:.75rem;box-shadow:var(--shadow-card);font-size:.88rem;line-height:1.6}.home .post-body pre code{font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,Consolas,monospace}@media(prefers-color-scheme:dark){.home .post-body .astro-code,.home .post-body .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}}.home .post-body table{display:block;overflow-x:auto;border-collapse:collapse;font-size:.95rem}.home .post-body th,.home .post-body td{padding:.5rem .75rem;border-bottom:1px solid var(--border);text-align:left}.home .post-body th{color:var(--text-strong)}.post-foot{margin-top:3.5rem;padding-top:2rem;border-top:1px solid var(--border);text-align:center}.home .toc{margin-bottom:2.25rem;padding:1.1rem 1.35rem;border-radius:.9rem;background:var(--surface);box-shadow:var(--shadow-card)}.toc h2{font-size:.85rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.home .toc ul{margin-top:.5rem;columns:2 16rem;column-gap:2rem}.toc li{padding:.2rem 0;break-inside:avoid}.home .post-body .callout-block{padding:.9rem 1.15rem;border-radius:.75rem;border-left:4px solid var(--blueberry-300);background:color-mix(in srgb,var(--blueberry-500) 8%,transparent);color:var(--text)}.home .post-body .callout-block>*+*{margin-top:.5rem}.home .post-body .callout-block.is-tip{border-left-color:var(--lime-500);background:color-mix(in srgb,var(--lime-500) 10%,transparent)}.home .post-body .callout-block.is-warning{border-left-color:var(--orange-500);background:color-mix(in srgb,var(--banana-500) 14%,transparent)}.home .post-body .callout-label{color:var(--text-strong);font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.home .post-body .screenshot{margin-inline:0}.screenshot-frame{overflow:hidden;border-radius:.65rem;background:var(--surface);box-shadow:var(--shadow-window)}.home .post-body .screenshot img{width:100%;border-radius:0;box-shadow:none}.screenshot figcaption{margin-top:.6rem;color:var(--muted);font-size:.9rem;text-align:center}.home .faq{margin-top:2.75rem}.faq h2,.read-next h2{margin-bottom:.9rem;font-size:1.6rem;font-weight:750}.faq details{border-top:1px solid var(--border)}.faq details:last-child{border-bottom:1px solid var(--border)}.faq summary{display:flex;justify-content:space-between;gap:1rem;padding:.95rem 0;color:var(--text-strong);font-weight:600;cursor:pointer;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--muted);font-weight:500}.faq details[open] summary:after{content:"–"}.home .faq details p{padding-bottom:1rem;color:var(--text);line-height:1.7}.home .read-next{margin-top:3rem}.home main.not-found{display:flex;flex-direction:column;align-items:center;max-width:36rem;padding-block:clamp(3rem,9vw,6rem);text-align:center}.not-found h1{margin-top:1.5rem;font-size:clamp(2.2rem,6vw,3.2rem);font-weight:800;letter-spacing:-.035em}.home .not-found>p{margin-top:.9rem;color:var(--muted);font-size:1.15rem}.not-found .topic-cloud{margin-top:2.5rem}.post>.ours-intro,.post>.callout,.post>.compare-scroll,.post>.ranked-list,.post>.download-card{margin-bottom:2.25rem}.home .ours-intro{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.1rem;padding:1.1rem 1.25rem;border-radius:.9rem;background:var(--surface);box-shadow:var(--shadow-card)}.ours-intro img{flex:0 0 auto;border-radius:24%}.home .ours-intro p{display:flex;flex:1 1 16rem;flex-direction:column;gap:.2rem;min-width:0;font-size:.95rem;line-height:1.5}.ours-intro strong{color:var(--text-strong);font-size:1.05rem}.ours-intro span{color:var(--muted)}.home .callout{padding:1.25rem 1.4rem;border-radius:.9rem;background:var(--surface);box-shadow:var(--shadow-card);border-left:4px solid var(--grape-300)}.callout h2{font-size:1.05rem;font-weight:700}.home .callout p{margin-top:.5rem;font-size:1.05rem}.home .glance{margin-top:.6rem;padding-left:1.3rem;list-style:decimal}.glance li+li{margin-top:.3rem}.compare-scroll{overflow-x:auto;border-radius:.9rem;background:var(--surface);box-shadow:var(--shadow-card)}.compare-table{width:100%;min-width:32rem;border-collapse:collapse;font-size:.95rem}.compare-table th,.compare-table td{padding:.8rem 1rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.compare-table tbody tr:last-child>*{border-bottom:0}.compare-table thead th{background:var(--titlebar);vertical-align:middle}.compare-table tbody th{width:26%;color:var(--text-strong);font-weight:600}.compare-table th:first-child{position:sticky;left:0;z-index:1;background:var(--surface);box-shadow:1px 0 0 var(--border)}.compare-table thead th:first-child{background:var(--titlebar)}@media(max-width:34rem){.compare-table{min-width:30rem;font-size:.88rem}.compare-table th,.compare-table td{padding:.7rem .75rem}.compare-table tbody th{width:7.5rem}}.compare-product{display:inline-flex;align-items:center;gap:.6rem;color:var(--text-strong)!important;font-weight:700}.compare-product .app-icon{width:2.25rem;height:2.25rem}.ranked-list{display:flex;flex-direction:column;gap:1.25rem}.home .ranked{padding:1.5rem;border-radius:.9rem;background:var(--surface);box-shadow:var(--shadow-card)}.ranked-head{display:flex;align-items:center;gap:1rem}.ranked-rank{flex:0 0 auto;display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:color-mix(in srgb,var(--grape-500) 14%,transparent);color:color-mix(in srgb,var(--grape-500) 75%,var(--text-strong));font-weight:800}.ranked-head .app-icon{width:3.5rem;height:3.5rem}.ranked-head h2{font-size:1.35rem;font-weight:800}.home .ranked-for{margin-top:.2rem;color:var(--muted);font-size:.93rem}.home .ranked-summary{margin-top:1rem}.ranked-proscons{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;margin-top:1rem}.ranked-proscons h3{font-size:.85rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.home .ranked-proscons ul{margin-top:.4rem;padding-left:1.2rem;list-style:disc;font-size:.95rem}.ranked-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border)}.ranked-foot p{display:flex;flex-wrap:wrap;gap:.4rem 1rem;color:var(--muted);font-size:.9rem}.glance-price{color:var(--muted)}.glance-price:before{content:" · "}.home .shortlist-more{margin-top:.75rem;font-size:.95rem}.home .post>.ranked-list{margin-top:2.5rem;margin-bottom:0}.home .side-by-side{margin-top:2.75rem}.side-by-side h2{margin-bottom:.9rem;font-size:1.6rem;font-weight:750}.home .ranked-shot{margin:1.1rem 0 0}.home .ranked-shot img{display:block;width:100%}.ranked-specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.6rem 1rem;margin-top:1rem;padding:.85rem 1rem;border-radius:.6rem;background:color-mix(in srgb,var(--slate-300) 10%,transparent)}.ranked-specs dt{color:var(--muted);font-size:.8rem;font-weight:600}.home .ranked-specs dd{margin:.1rem 0 0;color:var(--text-strong);font-size:.95rem}.home .author-box{display:flex;align-items:flex-start;gap:1.1rem;margin-top:3rem;padding:1.4rem 1.5rem;border-radius:.9rem;background:var(--surface);box-shadow:var(--shadow-card)}.author-avatar{width:4rem;height:4rem}.home .author-kicker{color:var(--muted);font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.author-box h2{margin-top:.15rem;font-size:1.25rem;font-weight:750}.author-box h2 a{color:var(--text-strong)}.home .author-role{color:var(--muted);font-size:.93rem}.home .author-bio{margin-top:.6rem;font-size:.98rem;line-height:1.6}.home .author-links{display:flex;flex-wrap:wrap;gap:.3rem 1rem;margin-top:.75rem;font-size:.93rem;font-weight:600}.home .download-card{border-radius:.9rem}.download-card>.signup-text,.download-card>.download-actions{padding-inline:1.75rem}.download-card:not(:has(.signup)){padding-block:1.5rem;background:var(--surface);box-shadow:var(--shadow-card)}.home .download-actions{margin-top:1rem}.home .download-card .signup{max-width:none}.signup-status .button{margin-left:.5rem;padding:.3rem .9rem;font-size:.9rem}.home .related{margin-top:2.5rem}.related h2{font-size:1.1rem;font-weight:700}.home .related ul{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}.home .topic-cloud{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem}.topic-cloud a,.related a{display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .9rem;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-card);color:var(--text-strong);font-weight:600}.topic-cloud a span{color:var(--muted);font-weight:500;font-size:.85rem}.home .topic-kicker{margin-bottom:.5rem;font-weight:600}.page-head h1:first-letter{text-transform:uppercase}.tags a{color:inherit}.home .section-filter{margin-bottom:2rem}.topic-cloud a[aria-current=page]{background:color-mix(in srgb,var(--grape-500) 14%,transparent);box-shadow:none;color:color-mix(in srgb,var(--grape-500) 75%,var(--text-strong))}.topic-cloud a[aria-current=page] span{color:inherit}.home .featured-post{display:flex;align-items:flex-start;gap:1.35rem;margin-bottom:1.5rem;padding:1.5rem 1.6rem;border-radius:.9rem;background:var(--surface);box-shadow:var(--shadow-card);color:var(--text-strong);transition:box-shadow .12s ease}.home .featured-post:hover{text-decoration:none;box-shadow:var(--shadow-card-hover)}.featured-post .app-icon{flex:0 0 auto;width:5rem;height:5rem}.featured-post-text{display:flex;flex-direction:column;gap:.45rem;min-width:0}.home .featured-post h2{font-size:clamp(1.3rem,3vw,1.6rem);font-weight:700;letter-spacing:-.025em;line-height:1.2}.section-index .list-box .post-list-desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.home .pagination{margin-top:2rem}.home .pagination ul{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem}.pagination a{display:inline-flex;align-items:center;justify-content:center;min-width:2.4rem;height:2.4rem;padding:0 .6rem;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-card);color:var(--text-strong);font-weight:600}.pagination a:hover{text-decoration:none;box-shadow:var(--shadow-card-hover)}.pagination a[aria-current=page]{background:color-mix(in srgb,var(--grape-500) 14%,transparent);box-shadow:none;color:color-mix(in srgb,var(--grape-500) 75%,var(--text-strong))}.news-signup{margin-top:3rem}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.home .signup{max-width:40rem;margin:0 auto;padding:1.75rem;border-radius:.9rem;background:var(--surface);box-shadow:var(--shadow-card)}.signup-text h2{font-size:1.3rem;font-weight:700}.signup-text p{margin-top:.4rem;color:var(--muted);font-size:.95rem}.signup-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.1rem}.signup input[type=email]{flex:1 1 14rem;min-width:0;padding:.6rem .9rem;border:0;border-radius:.55rem;background:var(--bg);box-shadow:inset 0 0 0 1px var(--border),inset 0 1px 2px #0000000f;color:var(--text-strong);font:inherit;font-size:1rem}.signup input[type=email]:focus-visible{outline:2px solid var(--blueberry-300);outline-offset:1px}.signup button{border:0;cursor:pointer;font-family:inherit}.signup button:disabled{opacity:.6;cursor:progress}.signup-status:empty{display:none}.home .signup-status{margin-top:.85rem;font-size:.93rem}.signup-status[data-state=ok]{color:color-mix(in srgb,var(--lime-500) 70%,var(--text-strong))}.signup-status[data-state=error]{color:color-mix(in srgb,var(--strawberry-500) 80%,var(--text-strong))}.footer{padding:2.5rem 1rem 3.5rem;border-top:1px solid var(--border);text-align:center;font-size:.9rem;color:var(--muted)}.footer p:first-child,.footer .footer-sections{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem .75rem}.footer-sections{margin-top:.75rem!important}.footer-fine{margin-top:.75rem!important;font-size:.8rem}@media(max-width:34rem){.topbar ul{gap:.85rem}.topbar{font-size:.85rem}.app-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem .25rem}.app-tile{padding:.5rem .25rem}.app-tile .app-icon{width:4.5rem;height:4.5rem}.app-name{font-size:.85rem}.app-tile .status{font-size:.65rem}.app-dialog-body{padding:1.25rem}.app-dialog-head .app-icon{width:4rem;height:4rem}.list-box a{flex-direction:column}.post-list-meta{flex-direction:row;gap:.75rem}.news-list a{flex-direction:row}.home .featured-post{gap:1rem;padding:1.25rem}.home .author-box{flex-direction:column;padding:1.25rem}.about-avatar{width:5rem;height:5rem}.featured-post .app-icon{width:3.5rem;height:3.5rem}.entry-thumb{width:5.5rem;aspect-ratio:4 / 3}.home .featured-post:has(.featured-thumb){flex-direction:column}.featured-post .featured-thumb{width:100%;aspect-ratio:16 / 9}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.app-tile .app-icon,.app-dialog,.app-dialog::backdrop,.home .button{transition:none}.app-tile:hover .app-icon,.home .button:hover{transform:none}}
