:root{--mono: "JetBrains Mono", "Berkeley Mono", ui-monospace, Menlo, monospace;--sans: "Inter", -apple-system, "Helvetica Neue", Helvetica, Arial, sans-serif;--accent: oklch(.62 .16 47)}[data-theme=light]{--bg: oklch(.985 .003 90);--bg-2: oklch(.965 .004 90);--bg-3: oklch(.93 .005 90);--fg: oklch(.2 .01 60);--fg-2: oklch(.42 .01 60);--fg-3: oklch(.62 .01 60);--rule: oklch(.86 .005 60);--rule-2: oklch(.78 .005 60)}[data-theme=dark]{--bg: oklch(.16 .005 250);--bg-2: oklch(.205 .006 250);--bg-3: oklch(.26 .008 250);--fg: oklch(.94 .005 90);--fg-2: oklch(.74 .008 90);--fg-3: oklch(.55 .008 90);--rule: oklch(.32 .008 250);--rule-2: oklch(.42 .008 250)}html,body,#root{margin:0;padding:0;min-height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--mono);font-feature-settings:"ss01","ss02","cv11";font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--accent);color:var(--bg)}.v5-root{padding:80px 96px 96px;max-width:1100px;margin:0 auto;font-family:var(--sans);color:var(--fg)}.v5-head{display:flex;flex-direction:column;gap:4px;padding-bottom:12px;border-bottom:1px solid var(--rule);margin-bottom:28px}.v5-name{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--accent);letter-spacing:.08em;text-transform:uppercase}.v5-sub{font-family:var(--mono);font-size:13px;color:var(--fg-3)}.v5-bio{font-size:22px;line-height:1.45;max-width:30ch;color:var(--fg);margin:0 0 56px;font-weight:400;letter-spacing:-.005em}.v5-bio em{font-family:var(--mono);font-style:normal;color:var(--accent);font-size:20px}.v5-foot{margin-top:64px;padding-top:20px;border-top:1px solid var(--rule);font-family:var(--mono);font-size:12px}.v5-foot-row{display:flex;gap:24px;align-items:center;flex-wrap:wrap;color:var(--fg-3)}.v5-foot-row a{color:var(--accent);text-decoration:none}.v5-foot-row a:hover{text-decoration:underline}.v5-foot-cap{color:var(--fg-3);font-size:11px}.v5-foot-row{justify-content:space-between;align-items:center}.v5-foot-controls{display:inline-flex;align-items:center;gap:28px}.v5-foot-swatches{display:inline-flex;gap:8px;align-items:center}.v5-foot-swatch{width:12px;height:12px;border:1px solid transparent;background:currentColor;cursor:pointer;padding:0;display:inline-block;transition:transform 80ms ease}.v5-foot-swatch:hover{transform:scale(1.15)}.v5-foot-swatch.is-on{outline:1px solid var(--fg);outline-offset:2px}.v5-foot-toggle{width:12px;height:12px;border:1px solid var(--rule);background:linear-gradient(135deg,var(--bg) 0%,var(--bg) 50%,var(--fg) 50%,var(--fg) 100%);cursor:pointer;padding:0;display:inline-block;transition:transform 80ms ease}.v5-foot-toggle:hover{transform:scale(1.15)}.v18-canvas{display:block;cursor:pointer;width:100%;height:auto}.v18-bio-row{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;margin-bottom:56px}.v18-bio-row .v5-bio{margin:0;max-width:none}.v18-bio-plate{display:block;min-width:0}.v18-bio-plate .v18-canvas{display:block}.v18-canvas-cap{font-family:var(--mono);font-size:11px;color:var(--fg-3);letter-spacing:.04em;margin-top:8px;text-align:right}.v18-canvas-pause,.v18-canvas-info{background:none;border:none;padding:0;font:inherit;font-family:var(--mono);font-size:9px;color:var(--fg-3);cursor:pointer;letter-spacing:.04em;text-transform:lowercase}.v18-canvas-pause:hover,.v18-canvas-info:hover{color:var(--fg)}.v18-canvas-info{cursor:help;display:inline-flex;align-items:center;vertical-align:middle}.v18-canvas-info svg{display:block}.v18-canvas-rule{background:none;border:none;padding:0;font:inherit;font-family:var(--mono);color:var(--fg-3);cursor:pointer;letter-spacing:.04em}.v18-canvas-rule:hover{color:var(--fg)}.v3-sec{margin-top:40px;display:flex;flex-direction:column;gap:14px}.v3-h{font-size:13px;font-weight:600;color:var(--fg);margin:0;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--rule);padding-bottom:8px;display:flex;gap:14px;align-items:baseline;counter-increment:cmpbl-sec}.v3-h:before{content:counter(cmpbl-sec);color:var(--accent)}.v3-cols{display:grid;grid-template-columns:1fr 1fr;gap:4px 40px}.v3-cols--single{grid-template-columns:1fr;row-gap:24px}.v3-cols--single .v3-row{gap:16px}.v3-project{display:flex;flex-direction:column;gap:4px}.project-live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-left:6px;vertical-align:middle}.v3-blurb{margin:0 0 0 72px;font-family:var(--sans);font-size:13px;line-height:1.5;color:var(--fg-2);max-width:64ch;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.v3-row{display:flex;align-items:baseline;gap:8px;padding:4px 0;font-size:12px}.v3-k{color:var(--fg-2);white-space:nowrap}.v3-v{color:var(--fg);white-space:nowrap}.v3-leader{flex:1;border-bottom:1px dotted var(--rule-2);align-self:center;margin:0 4px;height:0;transform:translateY(-3px)}.v3-ol{list-style:none;padding:0;margin:0;counter-reset:spec}.v3-ol li{counter-increment:spec;display:grid;grid-template-columns:30px 1fr auto;gap:16px;padding:7px 0;border-bottom:1px dotted var(--rule);font-size:12px}.v3-ol li:before{content:"4." counter(spec);color:var(--accent);font-variant-numeric:tabular-nums}.v3-ol-t{color:var(--fg)}.v3-ol-d{color:var(--fg-3);font-variant-numeric:tabular-nums}.v3-i{color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;min-width:56px}.v3-ol--dated li:before{content:none}.v3-ol--dated li{grid-template-columns:56px 56px 1fr}.v3-ol--two-col{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}.v3-ol--no-rating li{grid-template-columns:56px 1fr}.v3-link{color:inherit;text-decoration:none;border-bottom:1px solid transparent}.v3-link:hover{color:var(--accent);border-bottom-color:var(--accent)}.v3-meta{color:var(--fg-3)}.v3-ol-i{color:var(--accent);font-variant-numeric:tabular-nums}.v3-error{font-family:var(--mono);font-size:12px;color:var(--fg-3);margin:0}.reading-stats{gap:32px}.stats-block{display:flex;flex-direction:column;gap:12px;margin-top:8px}.stats-block-head{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--mono)}.stats-block-title{margin:0;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-2)}.reading-chart-wrap{position:relative}.reading-chart{width:100%;height:auto}.reading-chart-axis{stroke:var(--rule-2);stroke-width:1}.reading-chart-grid{stroke:var(--rule);stroke-width:1;stroke-dasharray:2 4}.reading-chart-bar{fill:var(--accent);cursor:pointer}.reading-chart-r5{opacity:1}.reading-chart-r4{opacity:.78}.reading-chart-r3{opacity:.55}.reading-chart-r2{opacity:.32}.reading-chart-r1{opacity:.15}.reading-chart-tick{font-family:var(--mono);font-size:10px;fill:var(--fg-3)}.reading-chart-legend{display:inline-flex;gap:12px;font-size:10px;color:var(--fg-3);letter-spacing:.04em}.reading-chart-legend-item{display:inline-flex;align-items:center;gap:4px}.reading-chart-swatch{width:8px;height:8px;background:var(--accent);display:inline-block}.genres-chart{display:flex;flex-direction:column;gap:6px;font-family:var(--mono);font-size:12px}.genres-row{display:grid;grid-template-columns:110px 1fr 32px;gap:12px;align-items:center;min-height:36px}.genres-tag{color:var(--fg-2)}.genres-bar-wrap{height:8px;background:var(--bg-3)}.genres-bar{height:100%;background:var(--accent)}.genres-count{color:var(--fg-3);text-align:right;font-variant-numeric:tabular-nums}.chart-tooltip{position:absolute;background:var(--bg);border:1px solid var(--rule);padding:8px 10px;font-family:var(--mono);font-size:10px;color:var(--fg-2);pointer-events:none;z-index:10;max-width:320px;transform:translate(12px,12px)}.chart-tooltip-head{display:flex;align-items:center;gap:8px;color:var(--fg);letter-spacing:.04em;margin-bottom:6px;font-variant-numeric:tabular-nums}.chart-tooltip-count{color:var(--fg-3);margin-left:auto}.chart-tooltip-list{list-style:none;margin:0;padding:0 0 0 12px;display:flex;flex-direction:column;gap:2px;font-size:10px}.chart-tooltip-list li{color:var(--fg-2);text-indent:-10px;padding-left:10px}.chart-tooltip-meta{color:var(--fg-3)}.rec-body{display:flex;flex-direction:column;gap:6px;min-width:0}.rec-title-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font-family:var(--sans)}.rec-title{font-size:18px;font-weight:500;color:var(--fg)}.rec-author{font-family:var(--mono);font-size:12px;color:var(--fg-2);letter-spacing:.02em}.rec-bucket{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.rec-why{font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--fg-2);margin:4px 0 0;max-width:60ch}.rec-why p{margin:0 0 .8em}.rec-why p:last-child{margin-bottom:0}.rec-why em,.rec-why i{font-style:italic}.rec-why strong,.rec-why b{font-weight:600;color:var(--fg)}.rec-why mark{background:color-mix(in oklch,var(--accent) 22%,transparent);color:var(--fg);padding:0 2px}.rec-link{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--accent);text-decoration:none;margin-top:4px;align-self:flex-start}.rec-link:hover{text-decoration:underline}.favorites-grid{display:grid;grid-template-columns:128px 1fr;gap:12px 16px;font-family:var(--mono);font-size:12px}.favorites-genre{color:var(--accent);letter-spacing:.04em;align-self:start}.favorites-books{display:flex;flex-direction:column;gap:3px}.favorites-book{color:var(--fg-2)}.favorites-title{color:var(--fg)}.favorites-meta{color:var(--fg-3)}.v3-ol-more{border-bottom:none!important;margin-top:16px}.photo-map-wrap{position:relative;width:100%}.photo-geo{fill:var(--bg-3);stroke:none;outline:none}.photo-geo:hover{fill:var(--bg-3)}.photo-marker{cursor:pointer}.photo-marker rect{fill:var(--accent);stroke:var(--bg);stroke-width:1;transition:transform .1s;transform-box:fill-box;transform-origin:center}.photo-marker:hover rect{transform:scale(1.6)}.photo-preview{position:absolute;top:16px;right:16px;margin:0;width:240px;background:var(--bg);border:1px solid var(--rule);padding:8px;pointer-events:none;font-family:var(--mono);font-size:11px;color:var(--fg-2)}.photo-preview img{display:block;width:100%;height:auto}.photo-preview figcaption{margin-top:6px;letter-spacing:.04em}.photo-preview-meta{color:var(--fg-3)}.photo-gallery{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:color-mix(in oklch,var(--fg) 70%,transparent);display:flex;align-items:center;justify-content:center;padding:32px 64px}.photo-gallery-frame{margin:0;display:flex;flex-direction:column;gap:12px;align-items:center;max-width:90vw;max-height:90vh}.photo-gallery-frame img{max-width:100%;max-height:80vh;display:block;background:var(--bg)}.photo-gallery-frame figcaption{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--bg);display:flex;gap:12px;align-items:baseline}.photo-gallery-meta{color:color-mix(in oklch,var(--bg) 70%,transparent)}.photo-gallery-counter{margin-left:auto;color:color-mix(in oklch,var(--bg) 60%,transparent);font-variant-numeric:tabular-nums}.photo-gallery-close,.photo-gallery-prev,.photo-gallery-next{position:absolute;background:none;border:none;color:var(--bg);cursor:pointer;font-family:var(--mono);padding:8px 12px;line-height:1}.photo-gallery-close:hover,.photo-gallery-prev:hover,.photo-gallery-next:hover{color:var(--accent)}.photo-gallery-close{top:16px;right:16px;font-size:28px}.photo-gallery-prev,.photo-gallery-next{top:50%;transform:translateY(-50%);font-size:36px}.photo-gallery-prev{left:8px}.photo-gallery-next{right:8px}.v17-body{display:flex;flex-direction:column;font-family:var(--mono);counter-reset:cmpbl-sec 0}.two-col-row{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;margin-top:40px}.two-col-row .v3-sec{margin-top:0}@media (max-width: 1024px){.two-col-row{grid-template-columns:1fr;gap:0}.two-col-row .v3-sec+.v3-sec{margin-top:40px}}.v17-body .v3-sec:first-child{margin-top:0}.v17-pips{display:inline-flex;gap:4px;align-items:center}.rating-pip{width:6px;height:6px;border-radius:50%;background:transparent;border:1px solid var(--accent);display:inline-block}.rating-pip.is-on{background:var(--accent)}@media (max-width: 1024px){.v5-root{padding:56px 24px 64px}.v18-bio-row{grid-template-columns:1fr;gap:32px}.v3-cols{grid-template-columns:1fr}.v3-ol li{grid-template-columns:24px 1fr auto;gap:10px}.favorites-grid{grid-template-columns:1fr;gap:4px 0}.favorites-genre{margin-top:12px}.favorites-genre:first-child{margin-top:0}.v3-ol--dated:not(.v3-ol--no-rating) li{grid-template-columns:56px 1fr;grid-template-areas:"date pips" "title title";gap:4px 10px}.v3-ol--dated:not(.v3-ol--no-rating) .v3-ol-i{grid-area:date}.v3-ol--dated:not(.v3-ol--no-rating) .v3-ol-d{grid-area:pips;justify-self:start}.v3-ol--dated:not(.v3-ol--no-rating) .v3-ol-t{grid-area:title}.v3-ol--no-rating li{grid-template-columns:56px 1fr;gap:16px}}.essay-shell{display:grid;grid-template-columns:240px 1fr;gap:64px;max-width:1100px;margin:0 auto;padding:56px 32px 0;align-items:start;font-family:var(--sans);color:var(--fg)}.essay-aside{position:sticky;top:56px;max-height:calc(100vh - 112px);display:flex;flex-direction:column;gap:18px;font-family:var(--mono);font-size:11.5px;line-height:1.45;min-width:0}.essay-back{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-2);text-decoration:none;display:flex;align-items:center;gap:4px;padding-bottom:12px;border-bottom:1px solid var(--rule)}.essay-back:hover{color:var(--accent)}.essay-toc-head{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3)}.essay-toc{list-style:none;padding:0;margin:0;overflow-y:auto;flex:1;font-family:var(--mono);font-size:11.5px;line-height:1.45;scrollbar-width:thin;scrollbar-color:var(--rule-2) transparent}.essay-toc::-webkit-scrollbar{width:4px}.essay-toc::-webkit-scrollbar-thumb{background:var(--rule)}.essay-toc-year{display:flex;justify-content:space-between;color:var(--fg-3);font-weight:600;font-size:10.5px;letter-spacing:.04em;margin:32px 0 4px;padding-bottom:4px;border-bottom:1px dashed var(--rule)}.essay-toc-year:first-child{margin-top:0}.essay-toc-item{display:block;padding:10px 0 10px 12px;color:var(--fg-2);text-decoration:none;border-left:1px solid transparent;transition:color .1s,border-color .1s;word-break:break-word;text-wrap:pretty}.essay-toc-item:hover{color:var(--fg);border-left-color:var(--fg-3)}.essay-toc-item.is-current{color:var(--accent);border-left-color:var(--accent)}.essay-main{min-width:0}.essay-article{max-width:720px}.essay-head{margin-bottom:40px}.essay-title{font-family:var(--sans);font-size:32px;font-weight:500;line-height:1.2;letter-spacing:-.01em;margin:0 0 12px;color:var(--fg)}.essay-meta{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--fg-3)}.essay-body{font-size:16px;line-height:1.65;color:var(--fg)}.essay-body p{margin:0 0 1.2em}.essay-body h1,.essay-body h2,.essay-body h3{font-family:var(--sans);margin:2em 0 .6em;letter-spacing:-.005em}.essay-body h2{font-size:22px;font-weight:600}.essay-body h3{font-size:18px;font-weight:600}.essay-body a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent)}.essay-body a:hover{background:color-mix(in oklch,var(--accent) 12%,transparent)}.essay-body code{font-family:var(--mono);font-size:.92em;background:var(--bg-2);padding:1px 5px;border-radius:2px}.essay-body pre{font-family:var(--mono);background:var(--bg-2);padding:16px;overflow-x:auto;font-size:13px;line-height:1.5;border-radius:2px}.essay-body pre code{background:none;padding:0}.essay-body blockquote{border-left:2px solid var(--rule-2);padding-left:16px;margin:1.2em 0;color:var(--fg-2)}.essay-body img{max-width:100%;height:auto;margin:1.2em 0}.essay-body ul,.essay-body ol{margin:0 0 1.2em;padding-left:24px}.essay-body hr{border:none;border-top:1px solid var(--rule);margin:2.4em 0}.essay-orig{font-family:var(--mono);font-size:12px;color:var(--fg-3);margin-top:56px;padding-top:16px;border-top:1px solid var(--rule)}.essay-orig a{color:var(--accent);text-decoration:none}.essay-orig a:hover{text-decoration:underline}.essay-footer-wrap{max-width:1100px;margin:80px auto 0;padding:0 32px 96px}.essay-index-root{max-width:720px;margin:0 auto;padding:56px 32px 0;font-family:var(--sans);color:var(--fg)}.essay-index-nav{padding-bottom:24px;margin-bottom:32px;border-bottom:1px solid var(--rule)}.essay-index-nav .essay-back{border-bottom:none;padding-bottom:0}.essay-index-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:32px}.essay-index-title{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0}.essay-index-count{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3)}.essay-index-footer{margin-top:80px;padding:0 0 96px}@media (max-width: 900px){.essay-shell{grid-template-columns:1fr;gap:32px;padding:32px 20px 0}.essay-aside{position:static;max-height:none}.essay-toc{max-height:240px}.essay-title{font-size:28px}.essay-footer-wrap{padding:0 20px 64px}}
