html.has-mobile-menu{scrollbar-gutter:stable}
.menu-toggle{display:none}
#mobile-menu{position:fixed;inset:0 0 0 auto;margin:0;width:min(360px,calc(100vw - 24px));max-width:none;height:100dvh;max-height:none;padding:0;overflow:hidden;border:0;border-left:1px solid #faf7f080;border-radius:18px 0 0 18px;background:var(--paper);color:var(--ink);box-shadow:-16px 0 64px #24362c26;overscroll-behavior:contain}
#mobile-menu[open]{display:flex;flex-direction:column}
#mobile-menu::backdrop{background:#263e355c;backdrop-filter:blur(4px)}
#mobile-menu .menu-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:calc(25px + env(safe-area-inset-top)) 22px 23px;border-bottom:1px solid var(--line);flex:0 0 auto}
#mobile-menu .menu-head .section-index{font-size:9px;letter-spacing:1.3px}
#mobile-menu-title{font-family:Georgia,"Songti SC","STSong",serif;font-size:26px;font-weight:500;line-height:1.4;margin:7px 0 0}
#mobile-menu .menu-close{display:grid;place-items:center;width:44px;height:44px;min-height:44px;flex:0 0 44px;padding:0;border:1px solid #263e3512;border-radius:50%;background:#263e3507;color:var(--ink);transition:background .2s,color .2s}
#mobile-menu .menu-close svg{width:20px;height:20px}
#mobile-menu .menu-close:hover{background:#ab573d14;color:var(--accent-ink)}
#mobile-menu .menu-close:focus-visible{outline-offset:3px}
#mobile-menu .menu-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:17px 22px calc(24px + env(safe-area-inset-bottom));scrollbar-width:thin;scrollbar-color:#a6aea0 transparent}
.drawer-nav{display:grid;gap:7px}
.drawer-nav a{display:grid;grid-template-columns:24px 1fr 16px;align-items:center;gap:12px;min-height:58px;padding:12px;border-radius:8px;color:var(--muted);font-size:15px;line-height:1.5;transition:background .2s,color .2s,transform .2s}
.drawer-nav a>span{font:10px Consolas,monospace;letter-spacing:.5px;color:var(--muted)}
.drawer-nav a>i{font-size:16px;font-style:normal;color:var(--accent-ink);opacity:0;transform:translate(-3px,3px);transition:opacity .2s,transform .2s}
.drawer-nav a[aria-current=location]{background:#e2e6d9;color:var(--ink);font-weight:600}
.drawer-nav a[aria-current=location]>i{opacity:1;transform:none}
.drawer-nav a:hover{background:#ebe3d5;color:var(--ink)}
.drawer-nav a:active{transform:translateX(3px)}
.drawer-tools{padding-top:25px;margin-top:auto}
.drawer-tools .header-actions{display:block;width:100%;padding-top:21px;border-top:1px solid var(--line);font-size:12px}
.drawer-tools .header-actions .resume-download{display:flex;min-height:48px;width:100%;padding:12px;font-size:12px;gap:9px;background:var(--ink);border-color:var(--ink);color:var(--paper-light);text-align:center}
.drawer-tools .resume-download .download-meta{color:#e5e5d6;font-size:10px}
.drawer-tools .resume-download:hover{background:#344f42}
@media(max-width:640px){
  html.has-mobile-menu .page-header .menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:none;min-height:44px;min-width:80px;padding:9px 12px;border:1px solid #adb2a1;border-radius:7px;background:#f3eee5b3;color:var(--ink);font-size:12px;line-height:1.4;transition:background .2s,transform .2s}
  .menu-toggle svg{width:18px;height:18px;flex:none}
  .page-header .menu-toggle:hover{background:var(--paper-light)}
  .page-header .menu-toggle:active{transform:scale(.97)}
}
@media(prefers-reduced-motion:reduce){
  .drawer-nav a,.drawer-nav a>i,.menu-toggle,#mobile-menu .menu-close{transition:none!important}
}
html[data-motion=off] .drawer-nav a:active,html[data-motion=off] .menu-toggle:active{transform:none}
