.blog-page,.blog-page *{box-sizing:border-box}
.blog-page{margin:0;background:var(--leo-bg);color:var(--leo-text);font-family:var(--leo-font-ui,"Riviera Nights",Arial,sans-serif);font-size:1.125rem;line-height:1.75}
.blog-page a{color:var(--leo-action-text);text-underline-offset:.22em;overflow-wrap:break-word}
.blog-page a:hover{text-decoration-thickness:2px}
.blog-page :is(a,button,[tabindex]):focus-visible{outline:3px solid var(--leo-focus);outline-offset:4px}
.blog-skip{position:fixed;z-index:100;inset-block-start:8px;inset-inline-start:8px;padding:12px 18px;background:var(--leo-card);transform:translateY(-150%)}
.blog-skip:focus{transform:none}
.blog-main{box-sizing:content-box;max-width:54ch;margin-inline:auto;padding:clamp(28px,5vw,52px) clamp(20px,4vw,48px) 64px;min-width:0}
.blog-page main h1,.blog-page main h2,.blog-page main h3,.blog-page main h4{text-align:left;line-height:1.25;font-weight:500;overflow-wrap:break-word}
.blog-page main h1{font-size:clamp(1.9rem,1.4rem + 2vw,2.65rem);font-weight:300;letter-spacing:-.025em;margin:0 0 20px}
.blog-page h2{font-size:clamp(1.4rem,1.2rem + 1vw,1.85rem);letter-spacing:-.015em}
.blog-page h3{font-size:1.25rem}
.blog-page h4{font-size:1.1rem}
.blog-page main p,.blog-page main blockquote,.blog-page .blog-prose li{text-align:justify;text-align-last:start;hyphens:auto;-webkit-hyphens:auto;hyphenate-limit-chars:7 3 3;overflow-wrap:break-word}
.blog-intro{color:var(--leo-muted);margin:0 0 24px}
.blog-summary{padding-block:28px;border-bottom:1px solid var(--leo-line)}
.blog-summary:first-child{padding-top:12px}
.blog-summary h2{margin:0 0 12px}
.blog-summary h2 a{color:var(--leo-text);text-decoration:none}
.blog-summary h2 a:hover{text-decoration:underline}
.blog-summary p{margin:16px 0 8px}
.blog-meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 10px;color:var(--leo-muted);font-size:.875rem;line-height:1.6}
.blog-read-more,.blog-back,.blog-footer a{display:inline-flex;align-items:center;min-height:44px;padding-block:8px}
.blog-page .blog-read-more{padding:10px 18px;border:1px solid var(--leo-action-fill);border-radius:var(--leo-radius-control,999px);background:var(--leo-action-fill);color:var(--leo-on-action);font-weight:500;text-decoration:none}
.blog-page .blog-read-more:hover{background:var(--leo-card);color:var(--leo-action-text)}
.blog-back{margin:0 0 22px;font-size:.9rem}
.blog-article h1{margin-bottom:16px}
.blog-lead{font-size:1.125rem;margin:24px 0 32px;color:var(--leo-muted)}
.blog-contents{margin:0 0 32px;padding-block:20px;border-block:1px solid var(--leo-line)}
.blog-contents h2{font-size:1.125rem;margin:0 0 8px}
.blog-contents ul,.blog-practice ul{list-style:none;padding:0;margin:0}
.blog-contents a,.blog-practice a{display:inline-flex;align-items:center;min-height:44px;padding-block:8px;line-height:1.45}
.blog-prose :is(h2,h3,h4){scroll-margin-top:100px}
.blog-prose h2,.blog-prose h3,.blog-prose h4{margin:1.8em 0 .65em}
.blog-prose h2:first-child{margin-top:0}
.blog-prose p{margin:0 0 1.25em}
.blog-prose ul,.blog-prose ol{padding-inline-start:1.5em;margin:0 0 1.25em}
.blog-prose li{padding-inline-start:.2em;margin-block:.5em}
.blog-prose blockquote{margin:1.5em 0;padding-inline-start:1.25em;border-inline-start:2px solid var(--leo-action-text);color:var(--leo-muted)}
.blog-prose blockquote p:last-child{margin-bottom:0}
.blog-prose hr{border:0;border-top:1px solid var(--leo-line);margin:2em 0}
.blog-table{max-width:100%;overflow-x:auto;margin-block:1.5em}
.blog-table table{width:100%;border-collapse:collapse;font-size:.9rem;line-height:1.55}
.blog-table caption{text-align:left;font-weight:500;margin-bottom:12px}
.blog-table th,.blog-table td{padding:12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--leo-line)}
.blog-table th{background:var(--leo-surface);font-weight:500}
.blog-prose pre{max-width:100%;overflow-x:auto;padding:16px;background:var(--leo-surface)}
.blog-footer{margin-top:40px;padding-top:16px;border-top:1px solid var(--leo-line)}
.blog-practice{margin-bottom:24px}
.blog-practice h2{margin:12px 0;font-size:1.4rem}
.blog-practice p{margin:0 0 8px}
@media(max-width:540px){.blog-main{padding-block:24px 40px}.blog-meta{column-gap:8px}.blog-summary{padding-block:24px}.blog-lead{font-size:1.0625rem}.blog-table th,.blog-table td{padding:10px}}
