:root{--bg: #fff;--text: #242424;--muted: #6b6b6b;--faint: #b3b3b3;--line: #e6e6e6;--accent: #1a8917;--accent-ink: #fff;--bubble: #1f1f1f;--bubble-ink: #f2f2f2;--bubble-on: #7ee07a;--code-bg: #f2f2f2;--sans: "Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--title-font: "Source Serif 4 Variable", Georgia, serif;--body-font: "Source Serif 4 Variable", Georgia, serif;--head-font: "Inter Variable", system-ui, sans-serif;--body-size: 21px;--body-lh: 1.62;--title-weight: 700;--title-track: -.022em;--head-weight: 700;--mono: ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;--col: 680px}@media(prefers-color-scheme:dark){:root{--bg: #121212;--text: #e8e8e8;--muted: #a0a0a0;--faint: #5e5e5e;--line: #2a2a2a;--bubble: #f2f2f2;--bubble-ink: #1a1a1a;--bubble-on: #1a8917;--code-bg: #1e1e1e}}.muted{color:var(--muted)}.small{font-size:13px}[data-font=book]{--title-font: "Literata Variable", Georgia, serif;--body-font: "Literata Variable", Georgia, serif;--head-font: "Literata Variable", Georgia, serif;--body-size: 19.5px;--body-lh: 1.68;--title-weight: 650}[data-font=editorial]{--title-font: "Newsreader Variable", Georgia, serif;--body-font: "Newsreader Variable", Georgia, serif;--body-size: 22px;--body-lh: 1.55;--title-weight: 600;--title-track: -.028em}[data-font=elegant]{--title-font: "Fraunces Variable", Georgia, serif;--head-font: "Fraunces Variable", Georgia, serif;--title-weight: 600;--title-track: -.02em;--head-weight: 600}[data-font=modern]{--title-font: "Inter Variable", system-ui, sans-serif;--body-font: "Inter Variable", system-ui, sans-serif;--body-size: 19px;--body-lh: 1.65;--title-weight: 750;--title-track: -.03em}[data-font=oldbook]{--title-font: "Cormorant Garamond Variable", "EB Garamond Variable", Garamond, serif;--body-font: "EB Garamond Variable", Garamond, serif;--head-font: "EB Garamond Variable", Garamond, serif;--body-size: 22.5px;--body-lh: 1.55;--title-weight: 600;--title-track: -.01em;--head-weight: 600}[data-font=caslon]{--title-font: "Libre Caslon Display", "Libre Caslon Text", Georgia, serif;--body-font: "Libre Caslon Text", Georgia, serif;--head-font: "Libre Caslon Text", Georgia, serif;--body-size: 18.5px;--body-lh: 1.75;--title-weight: 400;--title-track: -.005em;--head-weight: 700}[data-font=crimson]{--title-font: "Crimson Pro Variable", Georgia, serif;--body-font: "Crimson Pro Variable", Georgia, serif;--head-font: "Crimson Pro Variable", Georgia, serif;--body-size: 22px;--body-lh: 1.55;--title-weight: 650;--title-track: -.015em;--head-weight: 650}[data-font=apple]{--title-font: -apple-system, BlinkMacSystemFont, "Inter Variable", sans-serif;--body-font: ui-serif, "New York", "Source Serif 4 Variable", Georgia, serif;--head-font: -apple-system, BlinkMacSystemFont, "Inter Variable", sans-serif;--body-size: 20px;--body-lh: 1.6;--title-weight: 700;--title-track: -.025em}@media(prefers-color-scheme:light){[data-font=oldbook],[data-font=caslon]{--bg: #fbf7ee;--text: #2a251e;--muted: #75695a;--line: #e8dfcd;--code-bg: #f1eadb}}[data-font=oldbook] .prose-body,[data-font=caslon] .prose-body{font-variant-numeric:oldstyle-nums proportional-nums;hyphens:auto;-webkit-hyphens:auto}[data-font=oldbook] .prose-body>p+p,[data-font=caslon] .prose-body>p+p{margin-top:0;text-indent:1.4em}[data-dropcap=on] .prose-body>p:first-child:not(.is-editor-empty):first-letter{float:left;font-family:var(--title-font);font-size:4.25em;line-height:.74;margin-top:.04em;padding:.07em .09em 0 0;font-weight:500}[data-font=oldbook] .prose-body h3,[data-font=caslon] .prose-body h3{font-variant-caps:all-small-caps;letter-spacing:.06em;font-size:1.05em}.prose-body{font-family:var(--body-font);font-size:var(--body-size);line-height:var(--body-lh);letter-spacing:-.003em;word-wrap:break-word;font-optical-sizing:auto;font-kerning:normal;font-variant-ligatures:common-ligatures;text-rendering:optimizeLegibility}.prose-body>*+*{margin-top:1.1em}.prose-body p{margin:0}.prose-body p+p{margin-top:1.05em}.prose-body h2{font-family:var(--head-font);font-weight:var(--head-weight);font-size:1.45em;line-height:1.22;letter-spacing:-.018em;margin:1.7em 0 0}.prose-body h3{font-family:var(--head-font);font-weight:var(--head-weight);font-size:1.12em;line-height:1.3;letter-spacing:-.01em;margin:1.5em 0 0}.prose-body h2+*,.prose-body h3+*{margin-top:.5em}.prose-body a{color:inherit;text-decoration:underline;text-underline-offset:3px}.prose-body blockquote{margin-left:0;padding-left:22px;border-left:3px solid var(--text);font-style:italic}.prose-body ul,.prose-body ol{padding-left:1.6em}.prose-body li+li{margin-top:.4em}.prose-body li p{margin:0}.prose-body code{font:15px/1.4 var(--mono);background:var(--code-bg);padding:2px 5px;border-radius:4px}.prose-body pre{background:var(--code-bg);border-radius:4px;padding:18px 20px;overflow-x:auto;font:15px/1.55 var(--mono)}.prose-body pre code{background:none;padding:0;font-size:inherit}.prose-body hr{border:0;text-align:center;margin:2.4em 0;overflow:visible;height:auto}.prose-body hr:before{content:"· · ·";letter-spacing:.9em;font-size:26px;color:var(--muted)}.fig{margin:2em 0}.fig-frame{position:relative;cursor:default}.fig img{display:block;width:100%;height:auto;background:var(--code-bg)}.fig-wide{margin-left:-120px;margin-right:-120px}.fig-full{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}@media(max-width:960px){.fig-wide{margin-left:-20px;margin-right:-20px}}.fig figcaption{font:14px/1.4 var(--sans);color:var(--muted);text-align:center;margin-top:10px;padding:0 20px;min-height:1.4em}.video-frame{position:relative;aspect-ratio:16 / 9;background:#000;overflow:hidden;border-radius:2px}.video-frame img{width:100%;height:100%;object-fit:cover;display:block;opacity:.92}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-play{position:absolute;left:50%;top:50%;width:68px;height:48px;transform:translate(-50%,-50%);border:0;border-radius:14px;background:#141414c7;cursor:pointer;transition:background .15s,transform .15s}.video-play:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-38%,-50%);border-style:solid;border-width:10px 0 10px 17px;border-color:transparent transparent transparent #fff}.video-frame:hover .video-play{background:#e62117;transform:translate(-50%,-50%) scale(1.05)}.video-embed[data-provider=vimeo] .video-frame:hover .video-play{background:#1ab7ea}@media(max-width:600px){.prose-body{font-size:calc(var(--body-size) * .88)}}.prose-body table{width:100%;border-collapse:collapse;margin:1.6em 0;font:15px/1.45 var(--sans);display:block;overflow-x:auto}.prose-body th,.prose-body td{border-bottom:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top}.prose-body th{font-weight:600;background:color-mix(in srgb,var(--text) 5%,transparent)}.prose-body caption{caption-side:bottom;color:var(--muted);font-size:13px;padding-top:8px}@media(min-width:1700px){html:not([data-editor]){zoom:1.12}}@media(min-width:1950px){html:not([data-editor]){zoom:1.25}}@media(min-width:2300px){html:not([data-editor]){zoom:1.4}}@media(min-width:2800px){html:not([data-editor]){zoom:1.6}}@view-transition{navigation:auto}@keyframes pp-in{0%{opacity:0;transform:translateY(8px)}}@keyframes pp-fade{0%{opacity:0}}@keyframes pp-out{to{opacity:0}}::view-transition-old(root){animation:pp-out .13s ease-in both}::view-transition-new(root){animation:pp-in .24s 60ms cubic-bezier(.2,.7,.3,1) both}.s-head{view-transition-name:pp-site-header}.pp-homebar{view-transition-name:pp-home-bar}::view-transition-group(pp-site-header),::view-transition-group(pp-home-bar){animation-duration:.2s}html.pp-enter body{animation:pp-fade .26s ease-out both}.pp-appear{animation:pp-in .28s cubic-bezier(.2,.7,.3,1) both}img.pp-img{opacity:0;transition:opacity .35s ease-out}img.pp-img.pp-loaded{opacity:1}a,button{transition:color .15s,background-color .15s,border-color .15s,opacity .15s}@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}html.pp-enter body,.pp-appear{animation:none}img.pp-img{opacity:1;transition:none}a,button{transition:none}}:root{--h-wide: 1120px;--h-ink: #1d1b18;--h-ink-ink: #fbf7ee;--h-green: #1a7a17;--h-card: color-mix(in srgb, var(--code-bg) 55%, var(--bg))}@media(prefers-color-scheme:dark){:root{--h-ink: #f1ece2;--h-ink-ink: #151413;--h-green: #6fd36a}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text)}body{font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--h-green);outline-offset:3px;border-radius:4px}h1,h2,h3{text-wrap:balance}.h-nav{max-width:var(--h-wide);margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:18px max(20px,env(safe-area-inset-left,0px))}.h-logo{font:700 28px/1 var(--title-font);text-decoration:none;letter-spacing:-.01em}.h-logo.small{font-size:20px}.h-links{display:flex;align-items:center;gap:24px;font-size:14.5px}.h-links a:not(.h-cta),.h-login{text-decoration:none;color:var(--muted);background:none;border:0;padding:0}.h-links a:not(.h-cta):hover,.h-login:hover{color:var(--text)}.h-cta{display:inline-block;background:var(--h-ink);color:var(--h-ink-ink);text-decoration:none;border:0;font:600 16px var(--sans);padding:14px 26px;border-radius:99px;transition:transform .15s,box-shadow .15s}.h-cta:hover{transform:translateY(-1px);box-shadow:0 6px 18px #00000029}.h-cta.small{font-size:14px;padding:9px 18px}.h-cta.wide{width:100%;text-align:center;margin-top:12px}.h-hero{max-width:var(--h-wide);margin:0 auto;display:grid;grid-template-columns:1fr 1.05fr;gap:56px;align-items:center;padding:56px max(20px,env(safe-area-inset-left,0px)) 80px}.h-hero-text{min-width:0}.h-hero h1{margin:0;font-family:var(--title-font);font-weight:600;font-size:clamp(40px,5.2vw,66px);line-height:1.02;letter-spacing:-.02em}.h-lede{margin:22px 0 0;font:21px/1.5 var(--body-font);color:var(--muted);max-width:30em}.h-hero-actions{margin-top:32px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}.h-note{font-size:14px;color:var(--muted)}.h-try{margin:0;min-width:0}.h-page{position:relative;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:26px 34px 20px;box-shadow:0 1px 0 var(--line),0 24px 60px -24px #281e0a59;transform:rotate(.6deg);transition:transform .3s ease}.h-page:focus-within{transform:rotate(0)}.h-page-tools{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}.h-page-tools button{border:1px solid var(--line);background:none;border-radius:99px;padding:5px 12px;font:500 12.5px var(--sans);color:var(--muted)}.h-page-tools button[aria-checked=true]{background:var(--text);border-color:var(--text);color:var(--bg)}.h-page-title{margin:0;outline:none;font-family:var(--title-font);font-weight:var(--title-weight);font-size:36px;line-height:1.12;letter-spacing:var(--title-track);font-optical-sizing:auto}.h-page-body{margin-top:16px;outline:none;font-size:calc(var(--body-size) * .92);min-height:7em}.h-page-body:empty:before{content:"Start typing…";color:var(--faint)}.h-page-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-top:14px;border-top:1px dashed var(--line)}.h-page-hint{font-size:12.5px;color:var(--muted)}.h-keep{font:600 14px var(--sans);color:var(--h-green);text-decoration:none;white-space:nowrap}.h-keep:hover{text-decoration:underline}.h-reasons,.h-themes,.h-read,.h-close{max-width:var(--h-wide);margin:0 auto;padding:72px max(20px,env(safe-area-inset-left,0px))}.h-eyebrow{margin:0 0 28px;font:600 12.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.h-reasons{border-top:1px solid var(--line)}.h-reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.h-reason{min-width:0}.h-reason-mark{width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--h-card);font:600 22px var(--title-font);color:var(--h-green)}.h-mark-type{font-size:24px;color:var(--text)}.h-mark-url{font:600 15px var(--mono);color:var(--text)}.h-reason h3{margin:18px 0 8px;font:600 24px/1.2 var(--title-font)}.h-reason p{margin:0;font:17px/1.55 var(--body-font);color:var(--muted)}.h-reason strong{color:var(--text);font-weight:600}.h-section-head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;flex-wrap:wrap;margin-bottom:30px}.h-section-head h2{margin:0;font:600 40px/1.1 var(--title-font);letter-spacing:-.015em}.h-section-head p{margin:0;color:var(--muted);font-size:15px}.h-themes{border-top:1px solid var(--line)}.h-theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.h-theme{text-decoration:none;min-width:0;display:block}.h-theme h3{margin:16px 0 4px;font:600 22px var(--title-font)}.h-theme p{margin:0;font-size:14.5px;line-height:1.5;color:var(--muted)}.h-theme:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.h-mini{aspect-ratio:4 / 3;max-width:100%;border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:18px 22px;display:flex;flex-direction:column;gap:7px;overflow:hidden;transition:transform .2s,box-shadow .2s}.h-theme:hover .h-mini{transform:translateY(-3px);box-shadow:0 14px 30px -18px #0006}.h-mini i,.h-mini b{display:block;border-radius:3px}.h-mini .ln{height:6px;background:var(--line);width:100%}.h-mini .w60{width:60%}.h-mini .w80{width:80%}.h-mini-blogger{align-items:center}.h-mini-blogger .av{width:22px;height:22px;border-radius:50%;background:var(--code-bg)}.h-mini-blogger .nm{width:46%;height:11px;background:var(--muted);opacity:.7}.h-mini-blogger .img{width:100%;flex:1;min-height:40px;background:color-mix(in srgb,var(--h-green) 18%,var(--code-bg));margin-top:6px}.h-mini-blogger .hd{width:70%;height:9px;background:var(--text);align-self:flex-start}.h-mini-blogger .ln{align-self:flex-start}.h-mini-writer{align-items:center;padding-top:22px}.h-mini-writer .kick{width:34%;height:4px;background:var(--line)}.h-mini-writer .nm{width:58%;height:14px;background:var(--text);opacity:.85}.h-mini-writer .orn{color:var(--muted);font-size:12px;line-height:1;margin:4px 0}.h-mini-writer .toc{display:flex;align-items:center;gap:6px;width:100%;padding:5px 0;border-top:1px solid var(--line)}.h-mini-writer .toc b{width:42%;height:7px;background:var(--muted);opacity:.8}.h-mini-writer .toc i{flex:1;border-bottom:1.5px dotted var(--line);height:0;border-radius:0}.h-mini-writer .toc em{width:14%;height:5px;background:var(--line);border-radius:3px}.h-mini-magazine .mast{width:60%;height:14px;background:var(--text);align-self:center}.h-mini-magazine .rule{height:3px;border-top:1px solid var(--text);border-bottom:1px solid var(--text);border-radius:0}.h-mini-magazine .lead{display:grid;grid-template-columns:1.4fr 1fr;gap:8px;flex:1}.h-mini-magazine .lead .img{background:color-mix(in srgb,#b3261e 22%,var(--code-bg))}.h-mini-magazine .lead>span{display:flex;flex-direction:column;gap:5px;justify-content:center}.h-mini-magazine .lead b{height:9px;background:var(--text);width:90%}.h-mini-magazine .row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;height:28%}.h-mini-magazine .row i{background:var(--code-bg)}.h-read{border-top:1px solid var(--line)}.h-topics{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}.h-topics a{text-decoration:none;font-size:14px;padding:7px 14px;border-radius:99px;border:1px solid var(--line);color:var(--muted)}.h-topics a:hover{color:var(--text);border-color:var(--muted)}.h-stories{display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px}.h-story{display:flex;flex-direction:column;gap:6px;padding:22px 0;border-top:1px solid var(--line);text-decoration:none;min-width:0}.h-story-topic{font:600 11.5px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--h-green)}.h-story strong{font:600 25px/1.2 var(--title-font)}.h-story:hover strong{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.h-story-sub{font:17px/1.45 var(--body-font);color:var(--muted)}.h-story-by{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin-top:4px}.h-av{width:24px;height:24px;border-radius:50%;background:var(--h-card);color:var(--text);display:inline-flex;align-items:center;justify-content:center;font:600 10px var(--sans)}.h-close{text-align:center;border-top:1px solid var(--line);padding-bottom:96px}.h-close h2{margin:0;font:600 clamp(32px,4.4vw,52px)/1.08 var(--title-font);letter-spacing:-.015em}.h-close p{margin:14px 0 28px;color:var(--muted);font:19px var(--body-font)}.h-foot{max-width:var(--h-wide);margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:26px max(20px,env(safe-area-inset-left,0px)) 40px;border-top:1px solid var(--line);font-size:13.5px;color:var(--muted)}.h-foot nav{display:flex;gap:20px;flex-wrap:wrap}.h-foot a{text-decoration:none}.h-foot a:hover{color:var(--text)}.h-dialog{position:fixed;inset:0;z-index:60;background:#14100a73;display:flex;align-items:center;justify-content:center;padding:16px}.h-dialog[hidden]{display:none}.h-dialog-box{position:relative;width:100%;max-width:400px;background:var(--bg);border-radius:14px;padding:32px 30px 26px;box-shadow:0 30px 80px #00000059}.h-dialog-box h2{margin:0;font:600 28px var(--title-font)}.h-dialog-box>div>p{margin:8px 0 20px;color:var(--muted);font-size:15px}.h-dialog-x{position:absolute;right:14px;top:10px;border:0;background:none;font-size:26px;color:var(--muted)}.h-field-label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}#login-email{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--text);font:16px var(--sans)}#login-email:focus{outline:none;border-color:var(--text)}.h-or{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--muted);font-size:13px}.h-or:before,.h-or:after{content:"";flex:1;height:1px;background:var(--line)}.h-oauth{display:grid;gap:10px}.h-oauth-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:11px;border-radius:99px;border:1px solid var(--line);background:var(--bg);font:500 15px var(--sans)}.h-oauth-btn:hover{border-color:var(--muted)}.h-oauth-btn .g{font:700 16px var(--sans);color:#4285f4}.h-fine{margin:18px 0 0;text-align:center;font-size:13px;color:var(--muted)}.h-linkbtn{border:0;background:none;padding:0;color:var(--muted);text-decoration:underline;font-size:13px}.h-code{display:flex;gap:8px;justify-content:space-between}.h-code input{width:100%;max-width:48px;aspect-ratio:5 / 6;text-align:center;font:600 24px var(--mono);border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text)}.h-code input:focus{outline:none;border-color:var(--text)}.h-proto{margin:16px 0 0;padding:10px 12px;border-radius:8px;background:var(--code-bg);font-size:13px;text-align:center}@media(max-width:900px){.h-hero{grid-template-columns:1fr;gap:40px;padding-top:32px}.h-page{transform:none}.h-reason-grid,.h-theme-grid{grid-template-columns:1fr;gap:32px}.h-stories{grid-template-columns:1fr}.h-section-head h2{font-size:32px}}@media(max-width:560px){.h-links a:not(.h-cta){display:none}.h-links{gap:14px}.h-page{padding:20px 20px 16px}.h-page-title{font-size:28px}.h-page-foot{flex-direction:column;align-items:flex-start}.h-reasons,.h-themes,.h-read,.h-close{padding-top:52px;padding-bottom:52px}}@media(prefers-reduced-motion:reduce){.h-page,.h-cta,.h-mini{transition:none}}.h-nowrap{white-space:nowrap}@media(max-width:420px){.h-nowrap{white-space:normal}}.h-seeall{color:var(--h-green);text-decoration:none;font-weight:600;margin-left:6px}.d-wrap{max-width:var(--h-wide);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:64px;padding:28px max(20px,env(safe-area-inset-left,0px)) 72px}.d-main{min-width:0}.d-side{min-width:0;display:flex;flex-direction:column;gap:22px}.d-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.d-head h1{margin:0;font:600 46px/1 var(--title-font);letter-spacing:-.02em}.d-continue{display:flex;flex-direction:column;gap:4px;margin-top:26px;padding:20px 22px;border-radius:14px;text-decoration:none;background:var(--h-card);transition:transform .15s}.d-continue:hover{transform:translateY(-1px)}.d-continue-label{font:700 11.5px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--h-green)}.d-continue strong{font:600 28px/1.15 var(--title-font)}.d-continue>span:last-child{font-size:13.5px;color:var(--muted)}.d-tabs{display:flex;gap:26px;margin-top:34px;border-bottom:1px solid var(--line)}.d-tabs button{border:0;background:none;padding:10px 0 12px;font:600 15px var(--sans);color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.d-tabs button span{font-weight:500;margin-left:4px;opacity:.7}.d-tabs button[aria-selected=true]{color:var(--text);border-color:var(--text)}.d-list{list-style:none;margin:0;padding:0}.d-row{display:flex;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}.d-row>a:first-child{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;text-decoration:none}.d-row strong{font:600 22px/1.2 var(--title-font)}.d-row>a:first-child:hover strong{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.d-ex{font:16px/1.45 var(--body-font);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.d-meta{font-size:13px;color:var(--muted)}.d-meta b{color:var(--text)}.d-open{flex:none;text-decoration:none;font:600 13.5px var(--sans);padding:7px 14px;border-radius:99px;background:var(--text);color:var(--bg)}.d-open.ghost{background:none;color:var(--text);border:1px solid var(--line)}.d-empty{padding:24px 0;color:var(--muted)}.d-blogname{display:block;margin-top:8px;font:600 22px var(--title-font);text-decoration:none}.d-url{font:13px var(--mono)!important}.d-look a{color:var(--h-green);text-decoration:none;font-weight:600}.d-stats{display:flex;gap:28px;margin-top:10px}.d-stats p{margin:0;display:flex;flex-direction:column}.d-stats b{font:600 30px/1 var(--title-font)}.d-stats span{font-size:13px;color:var(--muted);margin-top:4px}.d-links{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px;font-size:14px}.d-links a{text-decoration:none;color:var(--muted)}.d-links a:hover{color:var(--text)}.r-side-box{border:1px solid var(--line);border-radius:12px;padding:18px 18px 16px}.r-side-box h2{margin:0;font:600 19px var(--title-font)}.r-side-box>p{margin:6px 0 0;font-size:14px;line-height:1.5;color:var(--muted)}.r-textlink{display:inline-block;margin-top:12px;color:var(--h-green);font-weight:600;font-size:14px;text-decoration:none}@media(max-width:960px){.d-wrap{grid-template-columns:1fr;gap:32px}}@media(max-width:560px){.d-head h1{font-size:36px}.d-row{flex-wrap:wrap}.d-open{margin-left:auto}}.d-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.d-head-actions .sb-btn{border:1px solid var(--line);border-radius:99px;padding:8px 14px;font:500 14px var(--sans);text-decoration:none}.d-acts{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.d-act{border:0;background:none;padding:4px 2px;font:500 13.5px var(--sans);color:var(--muted);cursor:pointer;text-decoration:underline;text-underline-offset:3px}.d-act:hover{color:var(--text)}.d-act.bad:hover{color:#b3261e}.d-act:disabled{opacity:.5}.bc-cover{aspect-ratio:2 / 3;max-width:100%;background:var(--bc);color:var(--bc-ink);border-radius:4px 10px 10px 4px;display:flex;flex-direction:column;align-items:center;text-align:center;padding:12% 10% 10%;box-shadow:inset 6px 0 #0000002e,inset 7px 0 #ffffff14,0 14px 30px -14px #00000073;font-family:var(--title-font);container-type:inline-size;overflow:hidden}.bc-top{font:600 clamp(7px,4.5cqw,12px) var(--sans);letter-spacing:.2em;text-transform:uppercase;opacity:.75}.bc-title{margin-top:auto;font-weight:var(--title-weight);font-size:clamp(14px,13cqw,44px);line-height:1.05;text-wrap:balance}.bc-sub{margin-top:6%;font-style:italic;font-size:clamp(8px,5.5cqw,17px);opacity:.85;text-wrap:balance}.bc-orn{margin:7% 0;font-size:clamp(9px,6cqw,20px);opacity:.7}.bc-author{margin-bottom:auto;font-size:clamp(8px,6cqw,18px);letter-spacing:.04em}.bl-wrap{max-width:var(--h-wide);margin:0 auto;padding:26px max(20px,env(safe-area-inset-left,0px)) 72px}.bl-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.bl-head h1{margin:0;font:600 46px/1 var(--title-font);letter-spacing:-.02em}.bl-head p{margin:6px 0 0;color:var(--muted);font-size:14.5px;max-width:40em}.bl-actions{display:flex;gap:10px;flex-wrap:wrap}.bl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:28px;margin-top:30px}.bl-book{display:flex;flex-direction:column;gap:8px;min-width:0}.bl-book>a{text-decoration:none;display:block;transition:transform .2s}.bl-book>a:hover{transform:translateY(-3px)}.bl-book b{font:600 18px/1.25 var(--title-font)}.bl-meta{font-size:13px;color:var(--muted)}.bl-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.bl-pill{font-size:12px;font-weight:600;padding:2px 9px;border-radius:99px;background:var(--h-card);color:var(--muted)}.bl-pill.live{background:color-mix(in srgb,var(--h-green) 14%,transparent);color:var(--h-green)}.bl-link{border:0;background:none;padding:0;font-size:13px;color:var(--muted);text-decoration:underline;cursor:pointer}.bl-empty{margin-top:30px;border:1px dashed var(--line);border-radius:16px;padding:48px 24px;text-align:center}.bl-empty h2{margin:0;font:600 28px var(--title-font)}.bl-empty p{margin:8px auto 20px;max-width:34em;color:var(--muted)}.bl-confirm{font-size:13px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.bl-confirm button{border:0;border-radius:99px;padding:4px 10px;font:600 12.5px var(--sans);cursor:pointer}.bl-confirm .yes{background:#b3261e;color:#fff}.be{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.be.focus{grid-template-columns:0 minmax(0,1fr)}.be.focus .be-side{visibility:hidden}.be-top{position:sticky;top:0;z-index:25;grid-column:1 / -1;display:flex;align-items:center;gap:14px;padding:10px max(16px,env(safe-area-inset-left,0px));background:var(--bg);border-bottom:1px solid var(--line)}.be-back{text-decoration:none;color:var(--muted);font-size:14px;white-space:nowrap}.be-back:hover{color:var(--text)}.be-booktitle{flex:1;min-width:0;border:0;background:none;color:var(--text);font:600 17px var(--title-font);padding:6px 8px;border-radius:6px;text-overflow:ellipsis}.be-booktitle:hover,.be-booktitle:focus{background:var(--h-card);outline:none}.be-stat{font-size:13px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.be-saved{font-size:13px;color:var(--muted);white-space:nowrap}.be-iconbtn{border:1px solid var(--line);background:none;border-radius:99px;padding:6px 12px;font:500 13px var(--sans);color:var(--text);cursor:pointer;white-space:nowrap}.be-iconbtn:hover{border-color:var(--muted)}.be-side{position:sticky;top:57px;align-self:start;height:calc(100vh - 57px);overflow-y:auto;border-right:1px solid var(--line);padding:18px 12px 24px;display:flex;flex-direction:column;gap:6px;scrollbar-width:thin}.be-side h2{margin:0 10px 6px;font:600 12px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.be-chapters{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;counter-reset:ch}.be-ch{position:relative;border-radius:10px}.be-ch>button.be-ch-open{width:100%;display:flex;gap:10px;align-items:baseline;text-align:left;border:0;background:none;color:var(--text);padding:9px 10px;border-radius:10px;cursor:pointer;font:14px/1.3 var(--sans)}.be-ch>button.be-ch-open:hover{background:var(--h-card)}.be-ch.on>button.be-ch-open{background:var(--h-card);box-shadow:inset 3px 0 0 var(--h-green)}.be-ch-n{flex:none;width:22px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:12.5px}.be-ch-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.be-ch-w{flex:none;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.be-ch-tools{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:none;gap:2px;background:var(--h-card);border-radius:8px;padding:2px}.be-ch:hover .be-ch-tools,.be-ch:focus-within .be-ch-tools{display:flex}.be-ch:hover .be-ch-w,.be-ch:focus-within .be-ch-w{visibility:hidden}.be-ch-tools button{border:0;background:none;color:var(--muted);width:26px;height:26px;border-radius:6px;cursor:pointer;font-size:13px}.be-ch-tools button:hover{background:var(--bg);color:var(--text)}.be-ch-tools button:disabled{opacity:.3;cursor:default}.be-ch-confirm{margin:4px 6px 8px;padding:10px;border-radius:10px;background:color-mix(in srgb,#b3261e 10%,var(--bg));font-size:13px;display:flex;flex-direction:column;gap:8px}.be-ch-confirm div{display:flex;gap:8px}.be-ch-confirm button{border:0;border-radius:99px;padding:5px 12px;font:600 12.5px var(--sans);cursor:pointer}.be-ch-confirm .yes{background:#b3261e;color:#fff}.be-add{margin-top:8px;border:1px dashed var(--line);background:none;color:var(--text);border-radius:10px;padding:10px;font:500 14px var(--sans);cursor:pointer}.be-add:hover{border-color:var(--muted)}.be-total{margin:14px 10px 0;font-size:12.5px;color:var(--muted);line-height:1.5}.be-progress{height:4px;border-radius:99px;background:var(--h-card);margin-top:6px;overflow:hidden}.be-progress i{display:block;height:100%;background:var(--h-green);border-radius:99px}.be-main{min-width:0;padding:40px max(20px,env(safe-area-inset-right,0px)) 30vh}.be-page{max-width:var(--col);margin:0 auto}.be-kicker{margin:0;font:600 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.be-chtitle{display:block;width:100%;border:0;background:none;color:var(--text);outline:none;margin:8px 0 0;padding:0;font-family:var(--title-font);font-weight:var(--title-weight);font-size:40px;letter-spacing:var(--title-track)}.be-chtitle::placeholder{color:var(--faint)}.be-editor{margin-top:28px}.be-editor .ProseMirror{outline:none;min-height:50vh}.be-editor .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--faint);float:left;height:0;pointer-events:none}.be-next{margin-top:48px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px}.be-next button{border:1px solid var(--line);background:none;color:var(--text);border-radius:99px;padding:8px 16px;font:500 14px var(--sans);cursor:pointer}.be-next button:hover{border-color:var(--muted)}.be-bubble{display:flex;background:#1f1f1f;color:#f2f2f2;border-radius:6px;padding:0 4px;box-shadow:0 2px 10px #0003}.be-bubble button{background:none;border:0;color:inherit;height:40px;min-width:36px;padding:0 8px;font-size:16px;cursor:pointer}.be-bubble button.on,.be-bubble button:hover{color:#7ee07a}.be-bubble .big{font:700 19px var(--title-font)}.be-bubble .small{font:700 13px var(--title-font)}.bp{position:fixed;inset:0;z-index:60;background:var(--bg);overflow-y:auto}.bp[hidden]{display:none}.bp-inner{max-width:1040px;margin:0 auto;padding:48px max(20px,env(safe-area-inset-left,0px)) 80px;position:relative}.bp-x{position:absolute;right:20px;top:18px;border:0;background:none;font-size:30px;color:var(--muted);cursor:pointer}.bp h1{margin:0 0 28px;font:600 34px var(--title-font)}.bp-grid{display:grid;grid-template-columns:220px minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:start}.bp-col{display:flex;flex-direction:column;gap:14px;min-width:0}.bp-col h2{margin:0;font:600 13px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.bp-field{display:flex;flex-direction:column;gap:6px}.bp-field>span{font-size:13px;color:var(--muted)}.bp-field input,.bp-field textarea,.bp-field select{padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--text);font:15px var(--sans);width:100%}.bp-field textarea{font:15.5px/1.5 var(--body-font);resize:vertical}.bp-field input[type=color]{width:64px;height:40px;padding:3px}.bp-choice{display:flex;flex-direction:column;gap:8px}.bp-opt{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer}.bp-opt:has(input:checked){border-color:var(--text);box-shadow:0 0 0 1px var(--text) inset}.bp-opt input{margin-top:3px;accent-color:var(--h-green)}.bp-opt b{display:block;font-size:15px}.bp-opt span{font-size:13px;color:var(--muted)}.bp-paywall[hidden]{display:none}.bp-paywall{display:flex;flex-direction:column;gap:14px}.bp-slider{display:flex;align-items:center;gap:12px}.bp-slider input{flex:1;accent-color:var(--h-green)}.bp-slider output{font:600 22px var(--title-font);min-width:2ch;text-align:right;font-variant-numeric:tabular-nums}.bp-chips{display:flex;flex-wrap:wrap;gap:6px}.bp-chips span{font-size:12.5px;padding:4px 9px;border-radius:8px;background:color-mix(in srgb,var(--h-green) 14%,transparent);color:var(--h-green);white-space:nowrap}.bp-chips span.locked{background:var(--h-card);color:var(--muted)}.bp-price{display:flex;align-items:center;gap:8px}.bp-price input{width:110px}.bp-summary{padding:14px 16px;border-radius:12px;background:var(--h-card);font-size:14.5px;line-height:1.5}.bp-summary b{font-family:var(--title-font);font-size:17px}.bp-fine{margin:0;font-size:12.5px;color:var(--muted);line-height:1.5}.bp-publish{margin-top:8px}.bp-done{padding:14px 16px;border-radius:12px;background:color-mix(in srgb,var(--h-green) 12%,var(--bg));font-size:14.5px}.bp-done a{color:var(--h-green);font-weight:600}@media(max-width:960px){.bp-grid{grid-template-columns:1fr 1fr}.bp-grid>.bp-cover-col{grid-column:1 / -1;flex-direction:row;align-items:center}.bp-cover-col .bc-cover{width:120px}}@media(max-width:760px){.be{grid-template-columns:1fr}.be-side{position:fixed;z-index:40;top:57px;left:0;bottom:0;height:auto;width:min(300px,86vw);background:var(--bg);box-shadow:10px 0 30px #00000026;transform:translate(-105%);transition:transform .2s}.be.side-open .be-side{transform:none}.be.focus .be-side{visibility:visible}.be-stat,.be-saved{display:none}.be-chtitle{font-size:30px}.bp-grid{grid-template-columns:1fr}.be-ch-tools{display:flex;position:static;transform:none;margin:0 6px 6px 38px;background:none}.be-ch .be-ch-w{visibility:visible!important}}.rb-wrap{max-width:980px;margin:0 auto;padding:32px max(20px,env(safe-area-inset-left,0px)) 72px}.rb-hero{display:grid;grid-template-columns:240px minmax(0,1fr);gap:40px;align-items:start}.rb-hero h1{margin:0;font-family:var(--title-font);font-weight:var(--title-weight);font-size:46px;line-height:1.06;letter-spacing:var(--title-track)}.rb-sub{margin:10px 0 0;font:italic 20px var(--body-font);color:var(--muted)}.rb-by{margin:14px 0 0;font-size:15px}.rb-desc{margin:18px 0 0;font:18px/1.6 var(--body-font)}.rb-facts{margin:16px 0 0;font-size:13.5px;color:var(--muted)}.rb-cta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:22px}.rb-access{font-size:14px;color:var(--muted)}.rb-toc{margin-top:48px}.rb-toc h2{margin:0 0 8px;font:600 13px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.rb-toc ol{list-style:none;margin:0;padding:0}.rb-toc li a{display:flex;gap:14px;align-items:baseline;padding:14px 4px;border-bottom:1px solid var(--line);text-decoration:none}.rb-toc li a:hover .rb-ch-t{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}.rb-ch-n{width:28px;flex:none;color:var(--muted);font-variant-numeric:oldstyle-nums tabular-nums;font-family:var(--title-font)}.rb-ch-t{flex:1;font:19px var(--title-font)}.rb-ch-s{font-size:12.5px;color:var(--muted);white-space:nowrap}.rb-ch-s.free{color:var(--h-green);font-weight:600}.rc-wrap{max-width:var(--col);margin:0 auto;padding:24px 20px 80px}.rc-crumb{margin:0;font-size:13.5px}.rc-crumb a{color:var(--muted);text-decoration:none}.rc-head{padding-top:34px;text-align:center}.rc-kicker{margin:0;font:600 12px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.rc-head h1{margin:12px 0 0;font-family:var(--title-font);font-weight:var(--title-weight);font-size:44px;line-height:1.08;letter-spacing:var(--title-track);text-wrap:balance}.rc-head .bk-open{margin-left:auto;margin-right:auto}.rc-body{margin-top:36px}.rc-nav{margin-top:48px;padding-top:20px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:14px}.rc-nav a{text-decoration:none;display:flex;flex-direction:column;gap:3px}.rc-nav span{font:600 11.5px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.rc-nav strong{font:18px/1.3 var(--title-font);font-weight:var(--title-weight)}.rc-nav .next{text-align:right}.rc-teaser{position:relative;max-height:220px;overflow:hidden}.rc-teaser:after{content:"";position:absolute;inset:auto 0 0;height:160px;background:linear-gradient(to bottom,transparent,var(--bg))}.rc-wall{margin-top:8px;border:1px solid var(--line);border-radius:16px;padding:30px 28px;text-align:center;background:var(--h-card)}.rc-wall .bc-cover{width:92px;margin:0 auto 16px}.rc-wall h2{margin:0;font:600 28px var(--title-font)}.rc-wall p{margin:10px auto 0;max-width:30em;color:var(--muted);font-size:15px;line-height:1.5}.rc-wall .h-cta{margin-top:20px}.rc-wall small{display:block;margin-top:12px;color:var(--muted);font-size:12.5px}.rc-thanks{margin-bottom:20px;padding:12px 16px;border-radius:12px;background:color-mix(in srgb,var(--h-green) 12%,var(--bg));font-size:14.5px;text-align:center}@media(max-width:680px){.rb-hero{grid-template-columns:1fr;gap:24px}.rb-hero .bc-cover{width:180px;margin:0 auto}.rb-hero h1{font-size:34px}.rc-head h1{font-size:32px}}.sb-btn{border:1px solid var(--line);background:none;color:var(--text);border-radius:99px;padding:8px 16px;font:500 14px var(--sans);cursor:pointer;text-decoration:none}.sb-btn:hover{border-color:var(--muted)}.bc-cover.mini{padding:14% 10%;justify-content:center}.bc-cover.mini .bc-sub,.bc-cover.mini .bc-orn,.bc-cover.mini .bc-author,.bc-cover.mini .bc-top{display:none}.bc-cover.mini .bc-title{margin:0;font-size:15px}@media(max-width:760px){.be-top{gap:8px}.be-top [data-preview]{display:none}.be-booktitle{font-size:15px;padding:6px 4px}.be-top .h-cta.small{padding:8px 12px}.be-top [data-toggle-side]{padding:6px 10px}}.be-booktitle{width:0}@media(max-width:760px){.be{grid-template-columns:minmax(0,1fr)}}.gl{position:fixed;inset:0;z-index:80;background:#14100a73;display:flex;align-items:center;justify-content:center;padding:16px}.gl-box{width:100%;max-width:520px;max-height:calc(100vh - 32px);overflow-y:auto;background:var(--bg);color:var(--text);border-radius:16px;padding:28px 28px 22px;box-shadow:0 30px 80px #00000059}.gl-box h2{margin:0;font:600 28px var(--title-font)}.gl-lede{margin:8px 0 0;color:var(--muted);font-size:15px}.gl-box h3{margin:20px 0 8px;font:600 12.5px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.gl-list{margin:0;padding-left:20px;display:grid;gap:8px;font-size:14.5px;line-height:1.5}.gl-list b{font-weight:600}.gl-note{margin:14px 0 0;font-size:13px;color:var(--muted)}.gl-check{display:flex;gap:10px;align-items:flex-start;margin-top:18px;padding:12px 14px;border-radius:12px;background:var(--h-card);font-size:14.5px;cursor:pointer}.gl-check input{margin-top:3px;accent-color:var(--h-green);width:16px;height:16px}.gl-actions{display:flex;justify-content:flex-end;gap:12px;align-items:center;margin-top:18px}.gl-cancel{border:0;background:none;color:var(--muted);font:500 14px var(--sans);cursor:pointer}.h-cta:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.bp-agree{margin:4px 0 0;font-size:12.5px;color:var(--muted)}.bp-agree button{border:0;background:none;padding:0;color:var(--text);text-decoration:underline;font:inherit;cursor:pointer}.bl-rules{margin-top:10px;font-size:13px;color:var(--muted)}.bl-rules button{border:0;background:none;padding:0;color:var(--text);text-decoration:underline;font:inherit;cursor:pointer}.bp-err{margin:10px 0 0;padding:9px 12px;border-radius:8px;font-size:14px;color:#b3261e;background:color-mix(in srgb,#d9412f 10%,var(--bg))}.bl-sales{color:#1a7a17;font-weight:600}.bl-pay{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:14px 0 0;padding:14px 16px;border:1px solid var(--line);border-radius:12px}.bl-pay div{display:grid;gap:3px;flex:1 1 280px}.bl-pay span{color:var(--muted);font-size:14px}.bl-pay.ok b{color:#1a7a17}.rb-mark{display:inline-flex;align-items:center;gap:6px;margin-right:14px;padding:6px 12px;border-radius:99px;border:1px solid var(--line);background:none;color:var(--text);font:500 13px var(--sans);cursor:pointer;vertical-align:middle}.rb-mark:hover{border-color:var(--muted)}.rb-mark.on{color:var(--accent, #1a7a17);border-color:currentColor}.rb-mark:disabled{opacity:.6}@media(max-width:520px){.rb-mark span{display:none}.rb-mark{padding:6px 8px;margin-right:8px}}#reader-app>.b-bar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px max(20px,calc((100% - var(--h-wide)) / 2 + 20px));max-width:none;gap:16px}.rb-cta .rb-mark{padding:12px 18px;font-size:14.5px;margin-right:0}.rb-cta .rb-mark svg{width:18px;height:18px}@media(max-width:520px){.rb-cta .rb-mark span{display:inline}.rb-cta .rb-mark{padding:12px 16px}}#reader-app>.b-bar .b-bar-name{font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.rb-wrap,.rc-wrap{animation:pp-in .28s cubic-bezier(.2,.7,.3,1) both}@media(prefers-reduced-motion:reduce){.rb-wrap,.rc-wrap{animation:none}}
