.article-layout{grid-template-columns:minmax(0, calc(var(--reading-measure) + 56px)) var(--sidebar-width);gap:var(--shell-gap);justify-content:start;display:grid}.post-article{grid-area:1/1;min-width:0}@media (width>=1024px){.post-article{border:1px solid var(--border);background:var(--surface);box-shadow:var(--card-shadow);border-radius:6px;padding:28px}}.post-header{border-bottom:1px solid var(--border);padding-bottom:14px}.post-header h1{margin:0 0 var(--space-2);overflow-wrap:anywhere;font-family:var(--font-content-emphasis);font-size:var(--type-article);font-weight:var(--weight-medium);text-wrap:balance;line-height:1.22}.post-pagination{margin-top:var(--space-9);padding-top:var(--space-6);border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.post-pagination a{align-content:center;gap:4px;min-width:0;min-height:44px;padding:4px 0;display:grid}.post-pagination .next-post{text-align:right}.post-pagination small{color:var(--text-faint);font-size:var(--type-caption)}.post-pagination span{font-family:var(--font-content);font-size:var(--type-meta);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.post-pagination a:hover span{color:var(--accent)}@media (width<=1279px){.article-layout{grid-template-columns:minmax(0, calc(var(--reading-measure) + 56px));justify-content:center;gap:0}.post-article{grid-column:1}}@media (width<=1023px){.article-layout{grid-template-columns:minmax(0, var(--reading-measure))}}@media (width<=760px){.post-header h1{font-size:32px}}.comments-section{margin-top:var(--space-9);padding-top:var(--space-6);border-top:1px solid var(--border)}.comments-section h2{margin:0 0 var(--space-6);font-family:var(--font-ui);font-size:var(--type-subhead);font-weight:var(--weight-semibold);line-height:1.4}.post-toc{max-height:calc(100dvh - 104px);padding:var(--space-4);border:1px solid var(--border);background:var(--surface);box-shadow:var(--card-shadow);border-radius:6px;grid-area:1/2;align-self:start;position:sticky;top:80px}.post-toc-header{justify-content:space-between;align-items:baseline;gap:var(--space-2);padding:0 var(--space-1);display:flex}.post-toc-header strong{color:var(--text);font-size:var(--type-ui);font-weight:var(--weight-semibold)}.post-toc-header span{color:var(--text-faint);font-size:var(--type-caption)}.toc-scroll-area{max-height:calc(100dvh - 166px);margin-top:var(--space-3);overscroll-behavior:contain;scrollbar-color:var(--text-faint) transparent;scrollbar-width:thin;overflow-y:auto}.toc-list{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.toc-list-item{min-width:0}.toc-list .toc-list{border-left:1px solid var(--border);gap:2px;margin:2px 0 4px 11px;padding-left:8px}.toc-link{min-width:0;color:var(--text-soft);font-size:var(--type-meta);overflow-wrap:anywhere;border-radius:4px;padding:7px 9px;line-height:1.5;transition:background-color .16s,color .16s;display:block}.node-name--H2{font-weight:var(--weight-medium)}[data-post-toc][data-enhanced=true] .toc-list.is-collapsible.is-collapsed{display:none}[data-post-toc][data-enhanced=true] .toc-list-item:focus-within>.toc-list.is-collapsed{display:grid}.toc-link:hover,.toc-link:focus-visible{background:var(--surface-muted);color:var(--text)}.toc-link:focus-visible{outline-offset:-2px}.toc-link.is-active-link,.toc-link[aria-current=location]{background:var(--accent-soft);box-shadow:inset 2px 0 var(--accent);color:var(--accent-strong);font-weight:var(--weight-semibold)}.post-toc-compact-slot,.post-toc-compact{display:none}@media (width<=1279px){.post-toc{display:none}.post-toc-compact-slot{flex:none;margin-left:auto;display:block;position:relative}.post-toc-compact{z-index:11;display:block;position:relative}.post-toc-compact summary{align-items:center;gap:var(--space-2);border:1px solid var(--border);background:var(--surface-muted);cursor:pointer;border-radius:5px;min-height:40px;padding:0 10px;list-style:none;display:flex}.post-toc-compact summary::-webkit-details-marker{display:none}.post-toc-compact summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toc-compact-label{color:var(--text);font-size:var(--type-meta);font-weight:var(--weight-semibold)}.toc-compact-icon{color:var(--text-soft);flex:none}.toc-compact-count{color:var(--text-soft);font-size:var(--type-caption)}.toc-compact-chevron{color:var(--text-faint);flex:none;transition:transform .16s}.post-toc-compact[open] .toc-compact-chevron{transform:rotate(180deg)}.toc-compact-panel{z-index:1;border:1px solid var(--border);background:var(--surface);width:min(360px,100vw - 40px);box-shadow:var(--floating-shadow);border-radius:6px;position:absolute;top:calc(100% + 6px);right:0}.toc-compact-panel .toc-scroll-area{max-height:min(60vh,440px);padding:var(--space-2);margin-top:0}.toc-compact-panel .toc-link{align-items:center;min-height:40px;display:flex}.post-toc-compact[data-detached=true]{bottom:max(24px, env(safe-area-inset-bottom));left:max(24px, env(safe-area-inset-left));z-index:12;width:44px;margin:0;position:fixed}.post-toc-compact[data-detached=true] summary{background:var(--surface);width:44px;min-height:44px;box-shadow:var(--floating-shadow-compact);justify-content:center;padding:0}.post-toc-compact[data-detached=true]:not([open]) :is(.toc-compact-label,.toc-compact-count,.toc-compact-chevron){display:none}.post-toc-compact[data-detached=true][open]{background:var(--surface);width:min(360px,100vw - 48px);box-shadow:var(--floating-shadow-strong);border-radius:6px;overflow:hidden}.post-toc-compact[data-detached=true][open] summary{width:100%;padding:0 var(--space-3);box-shadow:none;border-radius:6px 6px 0 0;justify-content:flex-start}.post-toc-compact[data-detached=true][open] .toc-compact-panel{width:100%;box-shadow:none;border-width:1px 0 0;border-radius:0;position:static}.prose :is(h2,h3)[tabindex="-1"]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}}@media (width<=760px){.post-toc-compact summary{min-height:44px}.post-toc-compact[data-detached=true]{bottom:max(16px, env(safe-area-inset-bottom));left:max(16px, env(safe-area-inset-left))}.post-toc-compact[data-detached=true][open]{width:min(360px,100vw - 32px)}body.floating-controls-clear .post-toc-compact[data-detached=true]:not([open]){visibility:hidden;opacity:0;pointer-events:none}}.weekend-calendar[data-v-40278cea]{margin-top:var(--space-7);font-family:var(--font-ui)}.calendar-header[data-v-40278cea]{justify-content:space-between;align-items:flex-end;gap:var(--space-6);margin-bottom:var(--space-4);display:flex}.calendar-kicker[data-v-40278cea]{margin:0 0 var(--space-1);color:var(--accent-strong);font-size:var(--type-caption);font-weight:var(--weight-semibold);line-height:1.4}.calendar-header h3[data-v-40278cea]{font-size:var(--type-subhead);margin:0;line-height:1.4}.calendar-header>div>p[data-v-40278cea]:last-child{margin:var(--space-2) 0 0;color:var(--text-soft);font-size:var(--type-meta);line-height:1.65}.calendar-total[data-v-40278cea]{text-align:right;flex:none;margin:0;display:grid}.calendar-total strong[data-v-40278cea]{font-variant-numeric:tabular-nums;font-size:28px;line-height:1}.calendar-total span[data-v-40278cea]{margin-top:var(--space-1);color:var(--text-faint);font-size:var(--type-caption);line-height:1.3}.calendar-frame[data-v-40278cea]{border:1px solid var(--border);background:var(--surface);border-radius:8px;overflow:hidden}.calendar-tabs[data-v-40278cea]{border-bottom:1px solid var(--border);background:var(--surface-muted);grid-template-columns:repeat(auto-fit,minmax(60px,1fr));gap:4px;padding:6px;display:grid;overflow-x:auto}.calendar-tabs button[data-v-40278cea]{min-width:0;min-height:38px;color:var(--text-soft);font-size:var(--type-meta);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:0 8px}.calendar-tabs button[data-v-40278cea]:hover{color:var(--text)}.calendar-tabs button[aria-selected=true][data-v-40278cea]{background:var(--surface);box-shadow:inset 0 -2px var(--accent), inset 0 0 0 1px var(--border);color:var(--text);font-weight:var(--weight-semibold)}.calendar-tabs button[data-v-40278cea]:focus-visible,.calendar-day.has-event[data-v-40278cea]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.calendar-panel[data-v-40278cea]{grid-template-columns:minmax(230px,.82fr) minmax(0,1.18fr);align-items:start;display:grid}.calendar-panel[hidden][data-v-40278cea]{display:none}.calendar-month[data-v-40278cea]{background:color-mix(in srgb, var(--surface) 88%, var(--bg));padding:20px}.calendar-month>header[data-v-40278cea],.calendar-agenda>header[data-v-40278cea]{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.calendar-agenda>header[data-v-40278cea]{align-items:center;min-height:28px}.calendar-month>header strong[data-v-40278cea]{font-size:var(--type-meta)}.calendar-month>header span[data-v-40278cea],.calendar-agenda>header span[data-v-40278cea]{color:var(--text-faint);font-size:var(--type-caption)}.calendar-weekdays[data-v-40278cea],.calendar-days[data-v-40278cea]{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.calendar-weekdays[data-v-40278cea]{margin-bottom:5px}.calendar-weekdays span[data-v-40278cea]{color:var(--text-faint);font-size:var(--type-caption);text-align:center}.calendar-day[data-v-40278cea]{aspect-ratio:1;width:100%;min-width:0;color:var(--text-faint);font-size:var(--type-meta);font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:5px;place-items:center;padding:0;line-height:1;display:grid;position:relative}button.calendar-day[data-v-40278cea]{cursor:pointer}.calendar-day.has-event[data-v-40278cea]{background:var(--accent-soft);color:var(--accent-strong);font-weight:var(--weight-semibold)}.calendar-day.has-event[data-v-40278cea]:hover{box-shadow:inset 0 0 0 1px var(--accent)}.calendar-day.has-event>span[data-v-40278cea]{background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;bottom:4px}.calendar-day.is-empty[data-v-40278cea]{visibility:hidden}.calendar-agenda[data-v-40278cea]{max-height:var(--calendar-month-height,none);border-left:1px solid var(--border);flex-direction:column;min-width:0;min-height:0;padding:20px;display:flex}.calendar-agenda[data-expanded=true][data-v-40278cea]{max-height:none}.calendar-agenda h4[data-v-40278cea]{font-size:var(--type-ui);margin:0;line-height:1.4}.calendar-agenda-actions[data-v-40278cea]{align-items:center;gap:var(--space-2);display:flex}.calendar-agenda-actions button[data-v-40278cea]{min-height:32px;padding:0 var(--space-2);border:1px solid var(--control-border);color:var(--text-soft);font-size:var(--type-caption);cursor:pointer;background:0 0;border-radius:4px}.calendar-agenda-actions button[data-v-40278cea]:hover{border-color:var(--accent);color:var(--accent-strong)}.calendar-agenda-actions button[data-v-40278cea]:focus-visible,.calendar-agenda-scroll[data-v-40278cea]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.calendar-agenda-scroll[data-v-40278cea]{min-height:0;padding-right:var(--space-2);overscroll-behavior:contain;scrollbar-color:var(--text-faint) transparent;scrollbar-gutter:stable;scrollbar-width:thin;flex:auto;overflow-y:auto}.calendar-agenda-scroll[data-expanded=true][data-v-40278cea]{scrollbar-gutter:auto;padding-right:0;overflow:visible}.calendar-agenda ol[data-v-40278cea]{margin:0;padding:0;list-style:none}.calendar-agenda li[data-v-40278cea]{gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border);grid-template-columns:62px minmax(0,1fr);transition:background-color .18s,box-shadow .18s;display:grid}.calendar-agenda li[data-v-40278cea]:first-child{padding-top:2px}.calendar-agenda li[data-v-40278cea]:last-child{border-bottom:0;padding-bottom:2px}.calendar-agenda li[data-v-40278cea]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:4px}.calendar-agenda li.is-highlighted[data-v-40278cea]{background:var(--accent-soft);box-shadow:-8px 0 0 var(--accent-soft), 8px 0 0 var(--accent-soft)}.calendar-agenda li.is-highlighted time span[data-v-40278cea]{color:var(--text-soft)}.calendar-agenda time[data-v-40278cea]{align-self:start;display:grid}.calendar-agenda time strong[data-v-40278cea]{font-size:var(--type-subhead);font-variant-numeric:tabular-nums;line-height:1}.calendar-agenda time span[data-v-40278cea]{margin-top:var(--space-1);color:var(--text-faint);font-size:var(--type-caption);line-height:1.35}.calendar-agenda li>div[data-v-40278cea]{min-width:0}.calendar-agenda li p[data-v-40278cea]{overflow-wrap:anywhere;color:var(--text-soft);font-size:var(--type-meta);margin:0;line-height:1.6}.calendar-agenda li p+p[data-v-40278cea]{margin-top:var(--space-1)}.sr-only[data-v-40278cea]{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (width<=760px){.weekend-calendar[data-v-40278cea]{margin-top:var(--space-6)}.calendar-header[data-v-40278cea]{align-items:flex-start;gap:18px}.calendar-total strong[data-v-40278cea]{font-size:24px}.calendar-tabs button[data-v-40278cea],.calendar-agenda-actions button[data-v-40278cea]{min-height:44px}.calendar-tabs button[data-v-40278cea]{min-width:52px;padding:0 5px}.calendar-month[data-v-40278cea],.calendar-agenda[data-v-40278cea]{padding:16px}.calendar-agenda li[data-v-40278cea]{grid-template-columns:56px minmax(0,1fr)}.calendar-agenda>header[data-v-40278cea]{min-height:44px}}@media (width<=520px){.calendar-panel[data-v-40278cea]{grid-template-columns:minmax(0,1fr)}.calendar-month[data-v-40278cea]{border-bottom:1px solid var(--border)}.calendar-agenda[data-v-40278cea]{border-left:0}}
