.post-page-container{max-width:var(--container-blog,72rem);padding:var(--space-xl) var(--space-l);box-sizing:border-box;margin:0 auto;position:relative}.post-main-article{background:0 0;max-width:72ch;margin:0 auto}@media (width>=1800px){.post-main-article{max-width:90ch}}@media (width>=2200px){.post-main-article{max-width:100ch}}.post-header{margin-bottom:var(--space-2xl);justify-content:space-between;align-items:flex-start;gap:var(--space-m);flex-direction:row;display:flex}.post-header-content{width:100%}.post-title{font-family:var(--m3-font-family-display);font-size:var(--m3-font-headline-large);color:var(--m3-color-primary);letter-spacing:-.015em;margin-bottom:var(--space-s);font-weight:540;line-height:1.2}.publish-date{font-family:var(--m3-font-family-body);font-size:var(--step--1);color:var(--color-text-tertiary);margin:0}.post-header-actions{flex-shrink:0}.copy-markdown-btn{align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-s);background:color-mix(in oklab, var(--m3-color-surface-variant) 50%, transparent);color:var(--color-text-secondary);border:1px solid var(--color-border);font-family:var(--m3-font-family-body);font-size:var(--step--2);cursor:pointer;white-space:nowrap;border-radius:6px;font-weight:500;transition:all .15s;display:inline-flex}.copy-markdown-btn:hover{background:var(--m3-color-surface-variant);color:var(--color-text-primary);border-color:var(--m3-color-outline)}.prose{font-family:var(--m3-font-family-body);font-size:var(--step-0);color:var(--m3-color-on-surface);width:100%;line-height:1.75}.prose p{margin-bottom:var(--space-m);line-height:1.75}.prose h2{font-family:var(--m3-font-family-display);font-size:var(--m3-font-headline-medium);color:var(--m3-color-on-surface);margin-top:var(--space-2xl);margin-bottom:var(--space-s);padding-bottom:var(--space-2xs);border-bottom:1px solid var(--color-border);letter-spacing:-.01em;font-weight:520;line-height:1.3}.prose h3{font-family:var(--m3-font-family-display);font-size:var(--m3-font-title-large);margin-top:var(--space-xl);margin-bottom:var(--space-xs);font-weight:500;line-height:1.3}.prose ul,.prose ol{list-style:revert;margin:var(--space-s) 0;padding-left:1.5rem}.prose li{margin-bottom:var(--space-2xs);line-height:1.65}.prose li strong:first-child{min-width:14ch;display:inline-block}.prose a{color:var(--m3-color-primary);text-decoration:underline;-webkit-text-decoration-color:color-mix(in oklab, var(--m3-color-primary) 30%, transparent);text-decoration-color:color-mix(in oklab, var(--m3-color-primary) 30%, transparent);text-underline-offset:.15em;transition:text-decoration-color .15s}.prose a:hover{-webkit-text-decoration-color:var(--m3-color-primary);text-decoration-color:var(--m3-color-primary)}.prose table{border-collapse:collapse;width:100%;margin:var(--space-l) 0;font-size:var(--step--1);border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.prose th,.prose td{text-align:left;padding:var(--space-xs) var(--space-s);border-bottom:1px solid var(--color-border)}.prose th{color:var(--m3-color-on-primary-container);background-color:var(--m3-color-primary-container);font-weight:600;font-size:var(--step--2);text-transform:uppercase;letter-spacing:.04em}.prose tr:last-child td{border-bottom:none}.prose tbody tr:nth-child(2n){background-color:color-mix(in oklab, var(--m3-color-surface-variant) 25%, transparent)}.prose tbody tr:hover{background-color:color-mix(in oklab, var(--m3-color-secondary-container) 25%, transparent)}.prose details.appendix-table{margin:var(--space-l) 0}.prose details.appendix-table summary{cursor:pointer;font-family:var(--m3-font-family-display);font-size:var(--step-0);color:var(--m3-color-primary);padding:var(--space-s) 0;border-bottom:1px solid var(--color-border);-webkit-user-select:none;user-select:none;font-weight:520}.prose details.appendix-table summary:hover{color:var(--color-accent-hover,var(--m3-color-primary))}.prose details.appendix-table summary::marker{color:var(--color-text-tertiary)}.prose details.appendix-table>table{margin-top:var(--space-m)}.blog-toc{top:calc(var(--nav-height) + var(--space-l));z-index:120;pointer-events:auto;width:18rem;position:fixed;right:clamp(1rem,3vw,3rem)}@media (width>=2000px){.blog-toc{width:16rem;right:calc(50vw - min(100ch,1200px)/2 + 1rem)}}.toc-card{padding:var(--space-m) 0;background:var(--color-card);border:1px solid var(--color-border);box-shadow:0 var(--space-s) var(--space-2xl) oklab(0% none none/.06);max-height:calc(100vh - calc(var(--nav-height) + var(--space-l) * 2));border-radius:8px;overflow-y:auto}.toc-header{padding:0 var(--space-m);justify-content:space-between;align-items:center;display:flex}.toc-card h4{font-size:var(--step--1);color:var(--m3-color-on-surface);text-transform:uppercase;letter-spacing:.04em;margin:0;font-weight:600}.toc-toggle{appearance:none;background:color-mix(in oklab, var(--color-border) 10%, transparent);color:var(--color-text-tertiary);cursor:pointer;width:1.75rem;height:1.75rem;font-size:var(--step-0);border:none;border-radius:6px;justify-content:center;align-items:center;line-height:1;display:inline-flex}.toc-toggle:hover{background:color-mix(in oklab, var(--color-border) 20%, transparent)}.toc-list{margin:var(--space-m) 0 0;gap:var(--space-2xs);flex-direction:column;padding:0;list-style:none;display:flex}.toc-list li{padding:0 var(--space-m)}.toc-list a{color:var(--color-text-tertiary);font-size:var(--step--1);padding:.1em 0;line-height:1.4;text-decoration:none;transition:color .15s;display:block}.toc-list a:hover,.toc-list a.link-active{color:var(--m3-color-primary);font-weight:500}.toc-depth-3{padding-left:calc(var(--space-m) + var(--space-s))!important}@media (width<=980px){.post-page-container{padding:var(--space-l) var(--space-m)}.post-header{gap:var(--space-s);flex-direction:column}.post-title{font-size:var(--m3-font-headline-medium)}.blog-toc{top:auto;right:var(--space-m);bottom:calc(env(safe-area-inset-bottom,0px) + var(--space-m));z-index:200;width:auto;position:fixed}.blog-toc.toc-collapsed{width:3rem}.blog-toc.toc-collapsed .toc-card{background:var(--m3-color-primary);border-radius:50%;width:3rem;height:3rem;overflow:visible}.blog-toc.toc-collapsed .toc-toggle{color:var(--m3-color-on-primary)}}
