/* A compact section switcher, authored for this portfolio's monochrome system. */
body.has-section-dock{padding-bottom:100px}
html{scroll-padding-bottom:110px}
.section-dock{position:fixed;z-index:30;bottom:calc(18px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:5px;padding:7px;max-width:calc(100% - 24px);background:var(--bg);border:1px solid var(--strong-line);border-radius:18px;isolation:isolate}
.section-dock a{display:flex;align-items:center;justify-content:center;flex-shrink:0;min-width:46px;min-height:46px;padding:11px;border-radius:11px;color:var(--muted);transition:color .2s,background-color .2s}
.section-dock a svg{width:21px;height:21px;transform:none!important}
.section-dock a:hover{background:var(--surface);color:var(--fg)}
.section-dock a[aria-current]{background:var(--fg);color:var(--bg)}
.section-dock a:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.dock-label{display:block;overflow:hidden;max-width:0;opacity:0;white-space:nowrap;font-size:12px;font-weight:600;line-height:1.5;transition:max-width .25s cubic-bezier(.16,1,.3,1),opacity .2s,margin-left .25s}
.section-dock a[aria-current] .dock-label,.section-dock a:focus-visible .dock-label{max-width:80px;opacity:1;margin-left:9px}
body.viewer-open .section-dock{visibility:hidden}
@media(max-width:600px){.section-dock{bottom:calc(12px + env(safe-area-inset-bottom,0px));gap:4px;padding:6px}.section-dock a{min-width:44px;min-height:46px;padding:10px}.section-dock a[aria-current] .dock-label,.section-dock a:focus-visible .dock-label{max-width:0;margin-left:0;opacity:0}body.has-section-dock{padding-bottom:92px}}
@media(prefers-reduced-motion:reduce){.dock-label,.section-dock a{transition:none}}
@media print{.section-dock{display:none}body.has-section-dock{padding-bottom:0}}
/* Portfolio-font labels replace browser-native title bubbles. */
.section-dock a{position:relative}
.dock-tooltip{position:absolute;bottom:calc(100% + 13px);left:50%;transform:translate(-50%,4px);display:block;padding:7px 11px;border-radius:7px;background:var(--fg);color:var(--bg);font-family:var(--font-body,Inter,Arial,sans-serif);font-size:12px;font-weight:500;line-height:1.5;letter-spacing:0;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s,transform .2s,visibility .16s;z-index:1}
.section-dock a:hover .dock-tooltip,.section-dock a:focus-visible .dock-tooltip{opacity:1;visibility:visible;transform:translate(-50%,0)}
.section-dock.tooltips-dismissed a .dock-tooltip{opacity:0;visibility:hidden;transition:none}
@media(prefers-reduced-motion:reduce){.dock-tooltip{transition:none}}
@media print{.dock-tooltip{display:none}}
/* Six destinations fit a 320px viewport while preserving 44px touch targets. */
@media(max-width:600px){.section-dock{gap:3px}}
