.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.art-head{padding:var(--sp-12) 0 var(--sp-8);border-bottom:1px solid var(--line)}.art-head .wrap{max-width:52rem}.art-head h1{margin-top:var(--sp-4);text-wrap:balance}.art-lede{font-size:var(--text-lg);color:var(--ink-2);margin-top:var(--sp-5);max-width:60ch}.art-meta{align-items:center;gap:var(--sp-3);margin-top:var(--sp-7);font-size:var(--text-sm);color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.art-meta .who{color:var(--ink);font-weight:var(--fw-semibold)}.art-meta .sep{background:var(--muted-2);border-radius:50%;width:3px;height:3px}.art-body{padding:var(--sp-10) 0 var(--sp-13)}.art-body .wrap{max-width:44rem}.art-body h2{font-family:var(--font-display);font-weight:800;font-size:var(--h4);color:var(--ink);margin:var(--sp-11) 0 var(--sp-4);text-wrap:pretty}.art-body h2:first-child{margin-top:0}.art-body h2,.art-body h3{scroll-margin-top:96px}.art-body h3{font-family:var(--font-display);font-weight:800;font-size:var(--h6);color:var(--ink);margin:var(--sp-8) 0 var(--sp-3);text-wrap:pretty}.art-body p{color:var(--ink-2);font-size:var(--text-lg);margin:var(--sp-5) 0;line-height:1.7}.art-body strong{color:var(--ink);font-weight:var(--fw-semibold)}.art-body a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.art-body a:hover{color:var(--accent-deep)}.art-body ul,.art-body ol{margin:var(--sp-5) 0;padding-left:var(--sp-6)}.art-body li{color:var(--ink-2);font-size:var(--text-lg);margin:var(--sp-3) 0;line-height:1.7}.art-fig{margin:var(--sp-10) calc(-1 * var(--sp-8))}.art-fig img{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-card);width:100%;height:auto;display:block}.art-fig--wide{margin-inline:min(0px,50% - 30rem)}.art-fig a{cursor:zoom-in;text-decoration:none;display:block}.art-fig a:hover img,.art-fig a:focus-visible img{border-color:var(--accent)}.fig-lightbox{border-radius:var(--r);background:var(--bg-card);border:0;max-width:min(96vw,1560px);max-height:92vh;margin:auto;padding:0;overflow:hidden}.fig-lightbox::backdrop{background:#0c0a14d1}.fig-lightbox__scroll{overscroll-behavior:contain;max-width:96vw;max-height:92vh;overflow:auto}.fig-lightbox__scroll img{width:auto;max-width:96vw;height:auto;max-height:92vh;display:block}.fig-lightbox__close{z-index:1;background:var(--ink);width:40px;height:40px;color:var(--white);cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:8px;right:8px}.fig-lightbox__close .ico{width:20px;height:20px}.fig-lightbox__close:hover{background:var(--accent)}@media (width<=767px){.fig-lightbox__scroll img{width:1100px;max-width:none;max-height:none}}.art-fig svg{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-card);width:100%;height:auto;display:block}.art-fig--svg svg text{font-family:var(--font-body)}.art-fig figcaption{margin-top:var(--sp-3);font-size:var(--text-sm);color:var(--muted);text-align:center;text-wrap:pretty}.art-fig table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.art-fig th,.art-fig td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.art-fig thead th{color:var(--ink);background:var(--bg-light);font-weight:700}.art-fig tbody th{color:var(--ink);font-weight:600}.art-fig tbody tr:last-child th,.art-fig tbody tr:last-child td{border-bottom:0}.art-hero{padding:var(--sp-8) 0 0}.art-hero .wrap{max-width:60rem}.art-hero img{border:1px solid var(--line);border-radius:var(--r-lg);width:100%;height:auto;display:block}.art-quote{margin:var(--sp-10) 0;padding-left:var(--sp-6);border-left:3px solid var(--accent)}.art-quote p{font-family:var(--font-display);font-weight:700;font-size:var(--h6);color:var(--ink);text-wrap:pretty;margin:0;line-height:1.45}.art-body pre{margin:var(--sp-6) 0;padding:var(--sp-5);background:var(--bg-light);border:1px solid var(--line);border-radius:var(--r-sm);overflow-x:auto}.art-body pre code{font-size:var(--text-sm);color:var(--ink-2);line-height:1.6}.art-body :not(pre)>code{background:var(--bg-light);border:1px solid var(--line);color:var(--ink);border-radius:4px;padding:.1em .35em;font-size:.9em}.posts{padding:var(--sp-10) 0 var(--sp-12)}.post-grid{gap:var(--sp-6);margin-top:var(--sp-7);grid-template-columns:repeat(3,1fr);list-style:none;display:grid}.post-card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-lg);transition:transform .2s var(--ease), border-color .2s var(--ease);flex-direction:column;display:flex;overflow:hidden}.post-card:hover{border-color:#fbe3ea;transform:translateY(-4px)}.post-card a:hover,.post-card a:hover *{text-decoration:none}.post-card img{aspect-ratio:1200/630;object-fit:cover;width:100%;height:auto;display:block}.post-card .pc-body{flex-direction:column;flex:1;padding:26px 24px;display:flex}.post-card h3{font-family:var(--font-display);font-weight:800;font-size:var(--text-lg);color:var(--ink);margin-bottom:var(--sp-3);text-wrap:pretty}.post-card p{color:var(--ink-2);font-size:var(--text-sm);margin-bottom:var(--sp-5)}.post-card .pc-meta{font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums;margin-top:auto}@media (width<=1023px){.post-grid{grid-template-columns:repeat(2,1fr)}.art-fig,.art-fig--wide{margin-inline:0}}@media (width<=767px){.wrap{padding:0 20px}.art-head{padding:var(--sp-9) 0 var(--sp-6)}.art-body{padding:var(--sp-8) 0 var(--sp-10)}.art-body p,.art-body li{font-size:var(--text-md)}.art-body h2{margin-top:var(--sp-9)}.post-grid{grid-template-columns:1fr}}:root{--bg:#fcfbfd;--card:#fff;--line:#ededf0;--r-xl:28px;--sh-sm:0 1px 2px #10131a0a, 0 6px 18px #10131a0d}body{background:var(--bg)}.ico{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}a:focus-visible,button:focus-visible{outline:3px solid var(--accent-bright);outline-offset:3px;border-radius:6px}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;position:relative}.hero{padding:var(--sp-12) 0 var(--sp-8)}.hero h1{text-wrap:pretty;margin-top:var(--sp-3)}.hero .lede{font-size:var(--text-lg);color:var(--ink-2);max-width:60ch;margin:var(--sp-5) 0 0;text-wrap:pretty}
