html.blog-page,body.blog-page{scroll-behavior:smooth;background:#040b06;height:auto;min-height:100%;overflow:hidden auto}body.blog-page{background:radial-gradient(circle at 78% 5%,#4b8b4b21,#0000 26rem),linear-gradient(#07110b 0,#040a06 32rem,#030604 100%)}.blog-shell{width:min(100%,1280px);min-height:100svh;margin:0 auto;padding:0 clamp(1.25rem,5vw,4.5rem)}.site-header,.site-footer{justify-content:space-between;align-items:center;gap:2rem;display:flex}.site-header{border-bottom:1px solid var(--line);min-height:88px}.site-mark{color:var(--text);letter-spacing:.04em;align-items:center;gap:.8rem;font-size:.8rem;font-weight:750;display:inline-flex}.site-mark>span:first-child{width:2.5rem;height:2.5rem;color:var(--lime);letter-spacing:.08em;background:#0c2416d9;border:1px solid #a7d46f85;border-radius:50%;place-items:center;font-size:.68rem;display:grid}.site-header nav{gap:.4rem;display:flex}.site-header nav a{min-height:44px;color:var(--muted);border-radius:999px;align-items:center;padding:.45rem .9rem;font-size:.82rem;font-weight:700;transition:color .18s,background .18s;display:inline-flex}.site-header nav a:hover,.site-header nav a[aria-current=page]{color:var(--lime);background:#174d2c75}.blog-main{min-height:calc(100svh - 190px)}.blog-index{width:min(100%,900px);margin:0 auto;padding:clamp(5rem,11vw,9rem) 0}.eyebrow{color:var(--lime);letter-spacing:.18em;text-transform:uppercase;margin:0 0 1.15rem;font-size:.7rem;font-weight:800}.blog-index h1,.article-hero h1{color:var(--text);letter-spacing:-.055em;text-wrap:balance;margin:0}.article-hero-image{width:min(100%,1100px);margin:0 auto clamp(3.5rem,8vw,6.5rem)}.article-hero-image img,.article-figure img{background:#07110b;border:1px solid #c2ddb92b;border-radius:clamp(.85rem,2vw,1.4rem);width:100%;height:auto;display:block;box-shadow:0 35px 100px #00000061}.article-figure{margin:3.5rem 0}.article-figure.app-screenshot img{width:min(100%,32rem);margin-inline:auto}.article-figure figcaption{color:#7f8e7d;text-align:center;margin-top:.85rem;font-size:.72rem;line-height:1.5}.blog-index h1{max-width:850px;font-size:clamp(3rem,8vw,6.5rem);line-height:.93}.blog-index h1 span{color:var(--lime)}.blog-intro{color:#b8c5b5;max-width:690px;margin:2rem 0 0;font-size:clamp(1.05rem,2vw,1.3rem);line-height:1.7}.post-list{gap:1.2rem;margin-top:clamp(3.5rem,8vw,6rem);display:grid}.post-card{background:linear-gradient(120deg,#0c2416b8,#040e08d1),#07110b;border:1px solid #c2ddb92e;border-radius:1.25rem;padding:clamp(1.5rem,4vw,2.7rem);position:relative;overflow:hidden;box-shadow:0 28px 80px #0000003d}.post-card:after{content:"";pointer-events:none;border:1px solid #a7d46f1f;border-radius:50%;width:14rem;height:14rem;position:absolute;top:-5rem;right:-5rem;box-shadow:inset 0 0 70px #a7d46f0a}.post-card-meta,.article-meta{color:#8f9e8e;flex-wrap:wrap;gap:.55rem;font-size:.78rem;font-weight:650;display:flex}.post-card h2{letter-spacing:-.04em;text-wrap:balance;max-width:720px;margin:1rem 0 0;font-size:clamp(1.65rem,4vw,2.65rem);line-height:1.1}.post-card h2 a:after{content:"";position:absolute;inset:0}.post-card>p{color:#aebaac;max-width:680px;margin:1rem 0 0;line-height:1.65}.tag-list{flex-wrap:wrap;gap:.5rem;margin-top:1.4rem;display:flex}.tag-list span{color:#b9caaa;border:1px solid #a7d46f33;border-radius:999px;padding:.35rem .65rem;font-size:.7rem;font-weight:700}.read-link,.back-link{color:var(--lime);align-items:center;gap:.5rem;font-weight:750;display:inline-flex}.read-link{z-index:1;margin-top:1.5rem;font-size:.83rem;position:relative}.back-link{margin-bottom:clamp(3.5rem,8vw,6.5rem);font-size:.78rem}.blog-article{width:min(100%,1100px);margin:0 auto;padding:clamp(3rem,7vw,6rem) 0 clamp(5rem,10vw,9rem)}.article-hero{width:min(100%,900px);margin:0 auto;padding-bottom:clamp(3.5rem,8vw,6.5rem)}.article-hero h1{max-width:980px;font-size:clamp(2.8rem,7vw,6.3rem);line-height:.98}.article-deck{color:#bec9bb;text-wrap:pretty;max-width:760px;margin:2rem 0 0;font-size:clamp(1.08rem,2.2vw,1.42rem);line-height:1.65}.article-meta{margin-top:1.7rem}.article-body{color:#c4cec1;width:min(100%,760px);margin:0 auto;font-size:clamp(1rem,1.4vw,1.08rem);line-height:1.82}.article-body>:first-child{margin-top:0}.article-body>p:first-child{color:#e2e9df;font-size:clamp(1.18rem,2.4vw,1.48rem);line-height:1.65}.article-body h2,.article-body h3{color:var(--text);letter-spacing:-.035em;text-wrap:balance}.article-body h2{margin:4.5rem 0 1.2rem;font-size:clamp(1.9rem,4vw,2.8rem);line-height:1.12}.article-body h3{margin:2.5rem 0 .8rem;font-size:1.35rem}.article-body p,.article-body ul,.article-body ol,.article-body blockquote,.article-body table,.article-body .public-architecture{margin-top:1.3rem;margin-bottom:1.3rem}.article-body ul,.article-body ol{padding-left:1.35rem}.article-body li{margin:.55rem 0;padding-left:.35rem}.article-body li::marker{color:var(--lime)}.article-body strong{color:#e5ece2}.article-body code{color:#c7e59f;background:#010703b8;border:1px solid #a7d46f24;border-radius:.32rem;padding:.12em .35em;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.87em}.article-body pre{color:#d5dfd1;tab-size:2;background:#020704;border:1px solid #a7d46f2e;border-radius:.8rem;max-width:100%;margin:1.75rem 0;padding:2.8rem clamp(1rem,3vw,1.4rem) clamp(1rem,3vw,1.4rem);line-height:1.6;position:relative;overflow-x:auto;box-shadow:inset 0 1px #ffffff06}.article-body pre:before{content:"CODE";color:#758672;height:1.85rem;font-family:var(--sans);letter-spacing:.15em;background:#0c24166b;border-bottom:1px solid #a7d46f1f;align-items:center;padding:0 .85rem;font-size:.58rem;font-weight:800;display:flex;position:absolute;top:0;left:0;right:0}.article-body pre.language-sh:before,.article-body pre.language-bash:before{content:"SHELL"}.article-body pre.language-json:before{content:"JSON"}.article-body pre.language-go:before{content:"GO"}.article-body pre.language-kotlin:before{content:"KOTLIN"}.article-body pre.language-yaml:before{content:"YAML"}.article-body pre code{color:inherit;background:0 0;border:0;padding:0;font-size:.78rem}.article-body .token.comment,.article-body .token.prolog,.article-body .token.doctype,.article-body .token.cdata{color:#748572;font-style:italic}.article-body .token.punctuation{color:#8fa08d}.article-body .token.property,.article-body .token.tag,.article-body .token.constant,.article-body .token.symbol,.article-body .token.deleted{color:#d9b879}.article-body .token.boolean,.article-body .token.number{color:#c7a8dc}.article-body .token.selector,.article-body .token.attr-name,.article-body .token.string,.article-body .token.char,.article-body .token.builtin,.article-body .token.inserted{color:#9bcf83}.article-body .token.operator,.article-body .token.entity,.article-body .token.url,.article-body .language-css .token.string,.article-body .style .token.string{color:#89b99a}.article-body .token.atrule,.article-body .token.attr-value,.article-body .token.keyword{color:#d2e39d}.article-body .token.function,.article-body .token.class-name{color:#83c7a0}.article-body .token.regex,.article-body .token.important,.article-body .token.variable{color:#dfb574}.article-body .token.important,.article-body .token.bold{font-weight:750}.article-body .token.italic{font-style:italic}.article-body a{color:var(--lime);text-underline-offset:.2em;text-decoration:underline #a7d46f59}.article-body a:hover{text-decoration-color:currentColor}.companion-post{background:linear-gradient(120deg,#174d2c57,#040e08b8);border:1px solid #a7d46f3d;border-radius:.85rem;margin:2.25rem 0 3.5rem;padding:1.15rem 1.25rem}.companion-post span{color:var(--lime);letter-spacing:.14em;text-transform:uppercase;font-size:.62rem;font-weight:800}.companion-post p{color:#bdc9b9;margin:.55rem 0 0;font-size:.9rem;line-height:1.55}.companion-post a{margin-top:.7rem;font-size:.78rem;font-weight:750;display:inline-flex}.article-body blockquote{border-left:2px solid var(--lime);color:#dce5d8;padding:.35rem 0 .35rem 1.5rem;font-size:1.12rem;font-style:italic}.article-body hr{border:0;border-top:1px solid var(--line);margin:4rem 0}.article-body table{border-collapse:collapse;width:100%;font-size:.9rem;line-height:1.55}.article-body th,.article-body td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.9rem 1rem}.article-body th{color:var(--lime);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem}.public-architecture{background:#06140bb8;border:1px solid #a7d46f33;border-radius:1.15rem;padding:clamp(1.25rem,4vw,2rem)}.architecture-flow{grid-template-columns:repeat(4,1fr);align-items:stretch;gap:1.4rem;display:grid}.architecture-node{text-align:center;background:#030b06bf;border:1px solid #c5debc29;border-radius:.75rem;align-content:center;gap:.25rem;min-height:7rem;padding:1rem;display:grid;position:relative}.architecture-node:not(:last-child):after{content:"→";color:var(--lime);position:absolute;top:50%;right:-1.08rem;translate:50% -50%}.architecture-node strong{font-size:.84rem}.architecture-node span{color:#829180;font-size:.7rem;line-height:1.35}.architecture-support{border-top:1px solid var(--line);color:#a5b2a3;text-align:center;margin-top:1rem;padding-top:1rem;font-size:.78rem}.site-footer{border-top:1px solid var(--line);color:#839080;min-height:100px;font-size:.75rem}.site-footer a{color:#b7c6b2}@media (width<=760px){.site-mark-copy{display:none}.architecture-flow{grid-template-columns:1fr;gap:1.5rem}.architecture-node{min-height:5rem}.architecture-node:not(:last-child):after{top:auto;bottom:-1.25rem;right:50%;translate:50% 50%;rotate:90deg}.article-body table{display:block;overflow-x:auto}}@media (width<=480px){.blog-shell{padding-inline:1rem}.site-header{min-height:72px}.site-footer{flex-direction:column;justify-content:center;align-items:flex-start;gap:.35rem}.article-body th,.article-body td{min-width:12rem}}
