.pg{--pg-head:var(--text-heading);--pg-body:var(--text-body);--pg-muted:var(--text-muted);--pg-rule:var(--border-subtle);--pg-link:var(--text-link)}.pg.figured{--pg-head:var(--fg-ink);--pg-body:var(--fg-ink);--pg-muted:var(--fg-ink2);--pg-rule:var(--fg-hair2);--pg-link:var(--fg-ink)}.pg.fireflies{--pg-head:var(--ff-text);--pg-body:var(--ff-text);--pg-muted:var(--ff-muted);--pg-rule:var(--ff-rule);--pg-link:var(--ff-glow);background:radial-gradient(ellipse 70% 40% at 80% 0%, #ffc8570f, transparent 70%), linear-gradient(180deg, var(--ff-deep) 0, var(--ff-night) 380px)}.pg .wrap{max-width:var(--page-max);padding-inline:var(--gutter);margin:0 auto}.sp-hero{padding-top:clamp(48px,8vw,104px);padding-bottom:clamp(48px,7vw,88px)}.sp-hero .by{margin-bottom:16px}.sp-hero h1{font-size:clamp(40px,6vw,72px);font-weight:var(--fw-display);font-stretch:var(--stretch-display);letter-spacing:-.04em;color:var(--pg-head);max-width:18ch;margin-bottom:20px;line-height:1}.pg.figured .sp-hero h1{font-family:var(--font-serif);letter-spacing:-.03em;font-style:italic;font-weight:400;font-stretch:100%}.pg.fireflies .sp-hero h1{letter-spacing:-.02em;font-weight:800;font-stretch:100%}.sp-lede{color:var(--pg-muted);max-width:52ch;font-size:clamp(17px,1.6vw,19px);line-height:1.55}.sp-mail{font-size:clamp(20px,4.6vw,44px);font-weight:var(--fw-medium);letter-spacing:-.03em;color:var(--pg-link);text-underline-offset:8px;overflow-wrap:anywhere;margin:28px 0 14px;text-decoration:underline 2px;display:inline-block}.pg.figured .sp-mail{font-family:var(--font-serif);text-decoration-color:var(--fg-hair2);font-style:italic;font-weight:400}.pg.fireflies .sp-mail{font-weight:700}.sp-note{color:var(--pg-muted);font-size:16px}.sp-apps{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px;padding-bottom:clamp(56px,8vw,104px);display:grid}.sp-app{border-radius:18px;flex-direction:column;gap:14px;padding:28px 28px 24px;display:flex}.sp-app h2{margin:0;font-size:44px}.sp-app p{max-width:40ch;font-size:17px;line-height:1.5}.sp-app.figured p{color:var(--fg-ink2)}.sp-app.fireflies p{color:var(--ff-muted)}.sp-app ul{flex-wrap:wrap;gap:4px 22px;margin:auto 0 0;padding:0;list-style:none;display:flex}.sp-app li a{text-underline-offset:4px;align-items:center;min-height:44px;font-size:17px;text-decoration:underline;display:inline-flex}.sp-app.figured li a{color:var(--fg-ink);text-decoration-color:var(--fg-hair2)}.sp-app.fireflies li a{color:var(--ff-glow-soft);font-weight:700}.sp-faq{padding-bottom:clamp(48px,7vw,88px)}.sp-faq h2,.sp-more h2{font-size:clamp(28px,3.4vw,40px);font-weight:var(--fw-semibold);letter-spacing:-.03em;color:var(--pg-head);margin-bottom:16px;line-height:1.1}.pg.figured .sp-faq h2{font-family:var(--font-serif);font-style:italic;font-weight:400}.pg.fireflies .sp-faq h2{font-weight:800}.sp-faq-list{border-top:1px solid var(--pg-rule);max-width:760px}.sp-faq details{border-bottom:1px solid var(--pg-rule)}.sp-faq summary{cursor:pointer;min-height:44px;font-size:18px;font-weight:var(--fw-medium);color:var(--pg-head);justify-content:space-between;align-items:center;gap:16px;padding:16px 0;list-style:none;display:flex}.pg.fireflies .sp-faq summary{font-weight:700}.sp-faq summary::-webkit-details-marker{display:none}.sp-faq summary:after{content:"+";font-family:var(--font-mono);color:var(--pg-muted);flex:none;font-size:20px}.sp-faq details[open] summary:after{content:"−"}.sp-faq details p{max-width:62ch;color:var(--pg-muted);padding:0 0 20px;font-size:17px;line-height:1.6}.sp-faq a,.sp-links a{color:var(--pg-link);text-underline-offset:4px;overflow-wrap:anywhere;text-decoration:underline}.pg.figured .sp-faq a,.pg.figured .sp-links a{text-decoration-color:var(--fg-hair2)}.sp-links{flex-wrap:wrap;gap:4px 28px;margin:0;padding:0 0 clamp(56px,8vw,104px);font-size:17px;list-style:none;display:flex}.sp-links a{align-items:center;min-height:44px;display:inline-flex}.pg.fireflies .sp-links a{font-weight:700}.lg{grid-template-columns:220px minmax(0,68ch);gap:0 clamp(32px,6vw,96px);padding-top:clamp(48px,7vw,96px);padding-bottom:clamp(64px,8vw,120px);display:grid}.lg-head{grid-column:2;margin-bottom:40px}.lg-head h1{letter-spacing:-.03em;color:var(--pg-head);margin-bottom:18px;font-size:clamp(44px,7vw,88px);line-height:1}.pg.figured .lg-head h1{font-family:var(--font-serif);font-style:italic;font-weight:400}.pg.fireflies .lg-head h1{letter-spacing:-.02em;font-size:clamp(36px,5.4vw,64px);font-weight:800;line-height:1.05}.lg-dates{color:var(--pg-muted);font-size:17px}.pg.figured .lg-dates{font-style:italic}.lg-index{grid-area:1/1/3;align-self:start;font-size:16px;position:sticky;top:24px}.lg-series{font-family:var(--font-sans);font-size:14px;font-weight:var(--fw-medium);color:var(--pg-muted);border-bottom:1px solid var(--pg-rule);padding-bottom:12px}.lg-index ol{margin:10px 0 0;padding:0;list-style:none}.lg-index a{color:var(--pg-muted);gap:10px;padding:5px 0;line-height:1.35;display:flex}.lg-index a:hover{color:var(--pg-head)}.lg-index-n{width:20px;font-family:var(--font-mono);color:var(--pg-muted);flex:none;padding-top:2px;font-size:12px}.lg-doc{color:var(--pg-body);grid-column:2;font-size:19px;line-height:1.65}.pg.fireflies .lg-doc{font-size:18px}.lg-doc h2{font-size:26px;font-weight:var(--fw-semibold);color:var(--pg-head);margin:48px 0 12px;scroll-margin-top:24px;line-height:1.2}.pg.figured .lg-doc h2{font-weight:500}.pg.fireflies .lg-doc h2{font-size:24px;font-weight:800}.lg-n{font-family:var(--font-mono);color:var(--pg-muted);vertical-align:2px;margin-right:6px;font-size:14px;font-weight:400}.lg-doc p,.lg-doc ul{margin:0 0 16px}.lg-doc ul{padding-left:22px}.lg-doc li{margin-bottom:6px}.lg-doc strong{color:var(--pg-head);font-weight:var(--fw-semibold)}.pg.figured .lg-doc strong{font-weight:600}.lg-doc a{color:var(--pg-link);font-weight:inherit;text-underline-offset:4px;overflow-wrap:anywhere;text-decoration:underline}.pg.figured .lg-doc a{text-decoration-color:var(--fg-ink3)}.pg.fireflies .lg-doc a{font-weight:700}.doc-muted{color:var(--pg-muted)}.doc-footer-links{border-top:1px solid var(--pg-rule);flex-wrap:wrap;align-items:center;gap:4px 14px;margin-top:48px;padding-top:20px;display:flex}.lg-doc .doc-footer-links a{align-items:center;min-height:44px;display:inline-flex}@media (width<=860px){.lg{grid-template-columns:minmax(0,1fr)}.lg-head,.lg-index,.lg-doc{grid-area:auto/1}.lg-index{margin-bottom:8px;position:static}.lg-index ol{columns:2;column-gap:24px}.lg-index li{break-inside:avoid}.lg-index a{min-height:32px}.lg-doc{font-size:18px}}@media (width<=420px){.lg-index ol{columns:1}}
