/* Persistent orientation, shared by the website and the journal. */
:root{--navigation-header:73px;--navigation-bottom:104px}
html{scroll-padding-top:calc(var(--navigation-header) + 24px);scroll-padding-bottom:var(--navigation-bottom)}
.site-header{position:sticky;top:0;z-index:40}
.header-inner{min-height:72px}
.skip{position:fixed}
.has-page-dock{padding-bottom:var(--navigation-bottom)}
.post-body h2,.post-body h3{scroll-margin-top:0}
.article-aside{top:calc(var(--navigation-header) + 24px);max-height:calc(100dvh - var(--navigation-header) - 140px);overflow-y:auto;scrollbar-width:thin}
.toc-list a[aria-current=location]{color:var(--link);border-left:2px solid var(--link);background:var(--paper);font-weight:500}
.page-dock{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);z-index:50;width:min(580px,calc(100% - 36px));border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink);box-shadow:0 8px 36px #0E223324}
.page-dock-bar{display:flex;align-items:center;gap:6px;padding:6px 8px;min-height:58px}
.page-dock button,.page-dock a{-webkit-tap-highlight-color:transparent}
.page-section-toggle{display:flex;align-items:center;gap:12px;min-width:0;flex:1;min-height:44px;border:0;border-radius:8px;background:transparent;color:var(--ink);text-align:left;padding:8px 10px;font-size:13px}
.page-section-toggle svg{width:19px;height:19px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.page-current{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.page-count{font:10px 'PT Mono',monospace;white-space:nowrap;color:var(--muted)}
.page-chevron{font-size:16px;color:var(--muted)}
.page-section-toggle[aria-expanded=true] .page-chevron{transform:rotate(180deg)}
.page-step-controls{display:flex;border-inline:1px solid var(--line);padding-inline:4px}
.page-step-controls button{width:44px;height:44px;border:0;border-radius:8px;background:transparent;color:var(--link);font-size:21px;line-height:1}
.page-step-controls button:disabled{opacity:.3;cursor:default}
.page-top{display:flex;gap:7px;align-items:center;justify-content:center;min-height:44px;border-radius:8px;padding:8px 12px;text-decoration:none;color:var(--link);font-size:12px;white-space:nowrap}
.page-top span{font-size:19px}
.page-section-toggle:hover,.page-top:hover,.page-step-controls button:not(:disabled):hover{background:var(--surface)}
.page-dock :focus-visible{outline-offset:-2px}
.page-progress{display:block;width:calc(100% - 24px);height:2px;margin:0 12px 6px;border:0;background:var(--line);border-radius:2px;overflow:hidden;appearance:none;accent-color:var(--link)}
.page-progress::-webkit-progress-bar{background:var(--line)}
.page-progress::-webkit-progress-value{background:var(--link)}
.page-progress::-moz-progress-bar{background:var(--link)}
.page-sections{position:absolute;bottom:calc(100% + 10px);left:0;right:0;max-height:min(52dvh,440px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 36px #0E223324;padding:8px}
.page-sections-heading{position:sticky;top:-8px;display:flex;align-items:center;justify-content:space-between;background:var(--paper);padding:4px 4px 6px 12px;color:var(--muted);font:11px 'PT Mono',monospace;z-index:1}
.page-sections-close{border:0;background:transparent;color:var(--ink);font-size:25px;width:44px;height:44px;border-radius:8px}
.page-sections ol{list-style:none;margin:0;padding:0}
.page-sections a{display:flex;align-items:baseline;gap:14px;min-height:44px;padding:12px;border-radius:7px;text-decoration:none;color:var(--muted);font-size:14px;line-height:1.45}
.page-section-number{font:10px 'PT Mono',monospace;flex-shrink:0}
.page-sections a:hover{background:var(--surface);color:var(--link)}
.page-sections a[aria-current=location]{background:var(--surface);color:var(--link);font-weight:500;box-shadow:inset 2px 0 var(--link)}
.page-dock-simple{left:auto;right:24px;transform:none;width:auto;min-width:115px}
.page-dock-simple .page-dock-bar{justify-content:center}
body:has(.contact-form input:focus,.contact-form textarea:focus,.search-field:focus) .page-dock{visibility:hidden}
@media(max-width:900px){.header-inner{min-height:68px;padding-block:12px}.site-header .main-nav{max-height:50dvh;overflow:auto}.article-aside{top:auto}.theme-toggle,.menu-toggle{width:44px;height:44px}}
@media(max-width:600px){:root{--navigation-header:69px;--navigation-bottom:100px}.header-inner{gap:8px;padding-block:10px}.header-actions{gap:4px}.site-header .brand-caption{font-size:7px}.site-header .wordmark{width:137px}.site-header .brand-avatar{width:32px;height:32px}.page-dock{width:calc(100% - 24px);bottom:calc(12px + env(safe-area-inset-bottom,0px))}.page-dock-bar{gap:2px;padding:5px}.page-section-toggle{gap:7px;padding-inline:6px;font-size:12px}.page-section-toggle svg{display:none}.page-count{font-size:9px}.page-chevron{display:none}.page-step-controls{padding-inline:1px}.page-step-controls button{width:44px}.page-top{padding-inline:8px;font-size:11px;gap:4px}.page-top span{font-size:16px}.page-sections a{font-size:13px}.page-dock-simple{width:auto;right:12px}}
@media(max-height:480px){.site-header{position:relative}.article-aside{position:static}html{scroll-padding-top:16px}.page-sections{max-height:calc(100dvh - 112px)}}
@media print{.page-dock{display:none}.site-header{position:static}.has-page-dock{padding-bottom:0}}
