/* A transient overlay: the document, study viewport and fixed dock never move. */
@font-face{font-family:'Wild Forest Refresh';src:url('/assets/museum/r210/fonts/zhuque-complete-r213.woff2') format('woff2');font-display:swap}
#studentRefreshScene{--wf-pull:0;position:fixed;z-index:1300;left:50%;top:var(--wf-safe-top,env(safe-area-inset-top,0px));width:min(100%,620px);height:0;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;transform:translateX(-50%);background:#141611;color:#d0b27a;box-shadow:none;transition:height .26s ease,opacity .26s ease,visibility .26s;contain:layout paint;}
#studentRefreshScene[data-phase]:not([data-phase=idle]){height:154px;visibility:visible;opacity:1;box-shadow:0 12px 30px #0003;border-bottom:1px solid #c3a87944}
#studentRefreshScene[data-phase=pull]{height:calc(32px + 122px * var(--wf-pull));transition:none}
.wf-refresh-art{position:absolute;inset:0 0 26px;overflow:hidden}
.wf-refresh-forest{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.5;transition:opacity .6s}
.wf-refresh-travel{position:absolute;left:8%;bottom:8%;width:38px;height:55px;transform-origin:bottom center}
.wf-refresh-deer{position:absolute;inset:0;transform:scaleX(-1);transform-origin:50% 68%;--wf-gait-duration:.68s}
.wf-deer-rig{display:block;width:100%;height:100%;overflow:visible}
.wf-deer-leg{fill:#c69b43}
.wf-deer-far{fill:#aa813a;--wf-leg-offset:-.09s}
.wf-deer-near{--wf-leg-offset:0s}
.wf-deer-upper,.wf-deer-lower,.wf-deer-hock{transform-box:view-box;transform-origin:0 0}
.wf-deer-fore .wf-deer-upper{transform:rotate(24deg)}
.wf-deer-fore .wf-deer-lower{transform:rotate(-25deg)}
.wf-deer-hind .wf-deer-upper{transform:rotate(34deg)}
.wf-deer-hind .wf-deer-lower{transform:rotate(-66deg)}
.wf-deer-hock{transform:rotate(32deg)}
#studentRefreshScene[data-phase=pull] .wf-refresh-travel{transform:translateX(calc(45px * var(--wf-pull)))}
#studentRefreshScene[data-phase=loading] .wf-refresh-travel{animation:wf-deer-approach 2.2s ease-out both}
#studentRefreshScene:is([data-phase=loading],[data-phase=success]) .wf-refresh-travel{will-change:transform}
#studentRefreshScene:is([data-phase=loading],[data-phase=success]) .wf-refresh-deer{animation:wf-deer-gallop var(--wf-gait-duration) linear infinite}
#studentRefreshScene:is([data-phase=loading],[data-phase=success]) .wf-deer-upper,
#studentRefreshScene:is([data-phase=loading],[data-phase=success]) .wf-deer-lower,
#studentRefreshScene:is([data-phase=loading],[data-phase=success]) .wf-deer-hock{animation-duration:var(--wf-gait-duration);animation-timing-function:cubic-bezier(.36,0,.64,1);animation-iteration-count:infinite;animation-delay:var(--wf-leg-offset)}
#studentRefreshScene:is([data-phase=loading],[data-phase=success]) .wf-deer-fore .wf-deer-upper{animation-name:wf-fore-reach}
#studentRefreshScene:is([data-phase=loading],[data-phase=success]) .wf-deer-fore .wf-deer-lower{animation-name:wf-fore-fold}
#studentRefreshScene:is([data-phase=loading],[data-phase=success]) .wf-deer-hind .wf-deer-upper{animation-name:wf-hind-drive}
#studentRefreshScene:is([data-phase=loading],[data-phase=success]) .wf-deer-hind .wf-deer-lower{animation-name:wf-hind-gather}
#studentRefreshScene:is([data-phase=loading],[data-phase=success]) .wf-deer-hock{animation-name:wf-hock-release}
#studentRefreshScene[data-phase=success] .wf-refresh-travel{animation:wf-deer-enter 1.05s cubic-bezier(.2,.65,.5,1) forwards}
#studentRefreshScene[data-phase=success] .wf-refresh-forest{opacity:1;animation:wf-forest-resolve 2.4s ease both}
.wf-refresh-stars{position:absolute;inset:0;opacity:0;color:#e4cda0}
.wf-refresh-stars i{position:absolute;font-style:normal;font-size:12px;left:64%;top:14%}
.wf-refresh-stars i:nth-child(2){left:86%;top:23%;font-size:9px}
.wf-refresh-stars i:nth-child(3){left:53%;top:8%;font-size:7px}
#studentRefreshScene[data-phase=success] .wf-refresh-stars{animation:wf-stars-resolve 1.7s ease forwards}
.wf-refresh-wordmark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding-top:8px;opacity:0;transform:translateY(8px);font:400 clamp(25px,6vw,36px)/1.35 'Wild Forest Refresh','Songti SC',serif;letter-spacing:.08em;color:#dec38b}
#studentRefreshScene[data-phase=success] .wf-refresh-wordmark{animation:wf-wordmark-resolve 1.1s ease .95s forwards}
#studentRefreshScene[data-phase=idle] .wf-refresh-travel{visibility:hidden}
#studentRefreshScene[data-phase=idle][data-previous-phase=success] .wf-refresh-forest{opacity:.1}
#studentRefreshScene[data-phase=idle][data-previous-phase=success] .wf-refresh-wordmark{opacity:1;transform:none}
.wf-refresh-caption{position:absolute;bottom:8px;left:12px;right:12px;display:flex;align-items:center;justify-content:center;gap:16px;font:12px/1.4 var(--font-body,sans-serif);letter-spacing:.06em;}
.wf-refresh-caption button{pointer-events:auto;min-height:44px;min-width:44px;background:none;border:0;color:#dec38b;padding:6px;font:inherit;text-decoration:underline;text-underline-offset:4px;}
.wf-refresh-caption button[hidden]{display:none}
#studentRefreshScene[data-phase=error]{height:118px}
#studentRefreshScene[data-phase=error] .wf-refresh-art{opacity:.3}
#studentRefreshScene[data-phase=error] .wf-refresh-caption{bottom:8px}
#studentRefreshScene [data-refresh-retry]:focus-visible,#studentRefreshScene [data-refresh-dismiss]:focus-visible{outline:2px solid currentColor;outline-offset:-2px}
#studentPullRefreshTrigger{position:fixed;z-index:1299;top:calc(var(--wf-safe-top,env(safe-area-inset-top,0px)) + 4px);left:50%;transform:translateX(-50%);width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
#studentPullRefreshTrigger:focus-visible{width:auto;height:44px;clip-path:none;padding:8px 16px;background:#141611;color:#dec38b;border:1px solid #b89e70;border-radius:3px;outline:2px solid #dec38b;}
body.student-guest #studentPullRefreshTrigger,body.gm-open #studentPullRefreshTrigger{display:none}
html[data-student-appearance=paper] body.student-page:not(.museum-refined) #mobileStudyNav:not(.knowledge-module-dock) [data-mobile-map]{flex-direction:column!important;gap:0!important;}
html[data-student-appearance=paper] body.student-page:not(.museum-refined) #mobileStudyNav:not(.knowledge-module-dock) [data-mobile-map]::before{content:'';display:block;width:26px;height:26px;flex-shrink:0;margin:0 auto 4px;background:currentColor;pointer-events:none;mask:url('/assets/museum/r215/icons/sitemap.svg') center/contain no-repeat;-webkit-mask:url('/assets/museum/r215/icons/sitemap.svg') center/contain no-repeat;}
@keyframes wf-deer-approach{from{left:var(--wf-deer-start-left,8%);bottom:var(--wf-deer-start-bottom,8%)}to{left:34%;bottom:8%}}
/* One gallop: forefeet reach/contact, weight passes, hindquarters push,
   then the knees tuck during suspension. Far limbs lead by 90 ms. */
@keyframes wf-deer-gallop{0%,100%{transform:scaleX(-1) translateY(-2px) rotate(-4deg)}18%{transform:scaleX(-1) translateY(1px) rotate(-1deg)}42%{transform:scaleX(-1) translateY(0) rotate(3deg)}64%{transform:scaleX(-1) translateY(-4px) rotate(1deg)}82%{transform:scaleX(-1) translateY(-5px) rotate(-3deg)}}
@keyframes wf-fore-reach{0%,100%{transform:rotate(54deg)}18%{transform:rotate(12deg)}40%{transform:rotate(-34deg)}62%{transform:rotate(-48deg)}80%{transform:rotate(28deg)}}
@keyframes wf-fore-fold{0%,100%{transform:rotate(-12deg)}18%{transform:rotate(-4deg)}40%{transform:rotate(-14deg)}62%{transform:rotate(-92deg)}80%{transform:rotate(-106deg)}}
@keyframes wf-hind-drive{0%,100%{transform:rotate(70deg)}18%{transform:rotate(45deg)}40%{transform:rotate(-12deg)}62%{transform:rotate(-50deg)}80%{transform:rotate(25deg)}}
@keyframes wf-hind-gather{0%,100%{transform:rotate(-110deg)}18%{transform:rotate(-54deg)}40%{transform:rotate(-28deg)}62%{transform:rotate(-10deg)}80%{transform:rotate(-102deg)}}
@keyframes wf-hock-release{0%,100%{transform:rotate(45deg)}18%{transform:rotate(12deg)}40%{transform:rotate(45deg)}62%{transform:rotate(16deg)}80%{transform:rotate(68deg)}}
@keyframes wf-deer-enter{0%{left:var(--wf-deer-enter-left,34%);bottom:var(--wf-deer-enter-bottom,8%);transform:scale(1);opacity:1}65%{opacity:1}100%{left:74%;bottom:22%;transform:scale(.18);opacity:0}}
@keyframes wf-forest-resolve{0%,40%{opacity:1}82%,100%{opacity:.1}}
@keyframes wf-stars-resolve{0%{opacity:0}30%,65%{opacity:1}100%{opacity:0}}
@keyframes wf-wordmark-resolve{to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){#studentRefreshScene,#studentRefreshScene *{animation:none!important;transition:none!important}.wf-refresh-travel{will-change:auto}#studentRefreshScene[data-phase=success] .wf-refresh-travel{display:none}#studentRefreshScene[data-phase=success] .wf-refresh-forest{opacity:.12}#studentRefreshScene[data-phase=success] .wf-refresh-wordmark{opacity:1;transform:none}}
