html.fang-boot .fang-boot-panel{min-height:100dvh;gap:19px;background:#faf7ee}
.fang-boot-panel .fang-loader-brand{display:flex;align-items:center;gap:11px;font-size:21px;font-weight:750;letter-spacing:.02em}
.fang-loader-dots{display:flex;gap:9px;align-items:center;height:30px}
.fang-loader-dots i{display:block;width:13px;height:17px;border-radius:4px;background:#f4c84f;animation:fang-loading 1.1s ease-in-out infinite}
.fang-loader-dots i:nth-child(2){background:#8cae80;animation-delay:.12s}.fang-loader-dots i:nth-child(3){background:#efaa7e;animation-delay:.24s}.fang-loader-dots i:nth-child(4){background:#8ab5c1;animation-delay:.36s}
.fang-boot-panel>span{font-size:12px;color:#7f8a80}
@keyframes fang-loading{0%,70%,100%{transform:scaleY(.55);opacity:.55}35%{transform:scaleY(1.25);opacity:1}}
.teacher-entry{min-height:calc(100dvh - 220px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:35px 20px;gap:17px}
.teacher-entry>img{width:50px;height:50px}.teacher-entry h1{font-size:clamp(24px,4vw,38px);max-width:24ch;margin:0}.teacher-entry p{margin:0;color:#7d897b}.teacher-entry>a{font-size:12px;color:#6e8362}
body.teacher-locked .duck-header-search,body.teacher-locked>header nav,body.teacher-locked .duck-menu-button{display:none!important}
body.teacher-locked #fang-auth-dialog .fang-auth-close{display:none}
body.teacher-locked #fang-auth-dialog::backdrop{background:#faf7eee8;backdrop-filter:blur(5px)}
body.teacher-locked #fang-auth-dialog{box-shadow:0 15px 70px #25303b13}
body.duck-site #fang-auth-dialog[open]{animation:fang-auth-enter .24s ease-out}
@keyframes fang-auth-enter{from{opacity:0;transform:translateY(9px) scale(.98)}to{opacity:1;transform:none}}
#fang-auth-dialog .duck-wing{transform-origin:45px 78px;animation:fang-duck-wave 3.6s ease-in-out infinite}
@keyframes fang-duck-wave{0%,65%,100%{transform:rotate(0)}75%,88%{transform:rotate(-13deg)}82%,94%{transform:rotate(8deg)}}
#fang-auth-dialog .duck-shy .duck-wing{animation:none}
#fang-login[aria-busy=true] .fang-auth-submit{display:flex;align-items:center;justify-content:center;gap:10px}
#fang-login[aria-busy=true] .fang-auth-submit:before{content:'';width:14px;height:14px;border:2px solid #25303b33;border-top-color:#25303b;border-radius:50%;animation:fang-spinner .65s linear infinite}
@keyframes fang-spinner{to{transform:rotate(360deg)}}
#fang-auth-dialog.auth-success .duck-character{animation:fang-duck-success .45s ease-in-out}
@keyframes fang-duck-success{30%{transform:translateY(-9px) rotate(-5deg)}65%{transform:translateY(-3px) rotate(5deg)}100%{transform:none}}
.fang-auth-student{display:block;text-align:center;font-size:11px;color:#758967;margin-top:17px}
@media(prefers-reduced-motion:reduce){.fang-loader-dots i,#fang-auth-dialog[open],#fang-auth-dialog .duck-wing,#fang-login[aria-busy=true] .fang-auth-submit:before,#fang-auth-dialog.auth-success .duck-character{animation:none!important}}
body.no-motion .fang-loader-dots i,body.no-motion #fang-auth-dialog[open],body.no-motion #fang-auth-dialog .duck-wing,body.no-motion #fang-login[aria-busy=true] .fang-auth-submit:before,body.no-motion #fang-auth-dialog.auth-success .duck-character{animation:none!important}
body.duck-site .fang-auth-language{position:absolute;top:13px;left:18px;font-size:10px;padding:3px 6px;border:0!important;background:transparent!important;width:auto}.fang-auth-legal{display:flex;justify-content:center;gap:17px;font-size:10px;color:#8c9789;margin:14px 0 0}
.shell-wait{min-height:52vh;display:grid;place-content:center;justify-items:center;gap:10px;color:#71806f;text-align:center}.shell-duck{font-size:42px;filter:drop-shadow(0 6px 5px #3d4a3b18);animation:lazy-duck-bob 1.1s ease-in-out infinite}
.fang-lazy-loader{position:fixed;inset:0;z-index:9998;display:grid;place-content:center;justify-items:center;gap:8px;padding:25px;background:#faf7eef2;backdrop-filter:blur(7px);opacity:0;transition:opacity .2s ease;text-align:center;color:#293632}.fang-lazy-loader.show{opacity:1}.fang-lazy-loader strong{font-size:18px}.fang-lazy-loader small{font-size:12px;color:#7e897d}.lazy-duck{position:relative;width:82px;height:76px;display:grid;place-items:center}.lazy-duck span{position:relative;z-index:1;font-size:50px;animation:lazy-duck-bob .85s ease-in-out infinite}.lazy-duck i{position:absolute;bottom:4px;width:50px;height:10px;border-radius:50%;background:#27362a1f;animation:lazy-duck-shadow .85s ease-in-out infinite}
@keyframes lazy-duck-bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-11px) rotate(3deg)}}@keyframes lazy-duck-shadow{0%,100%{transform:scaleX(1);opacity:.55}50%{transform:scaleX(.72);opacity:.25}}
@media(prefers-reduced-motion:reduce){.shell-duck,.lazy-duck span,.lazy-duck i{animation:none!important}}body.no-motion .shell-duck,body.no-motion .lazy-duck span,body.no-motion .lazy-duck i{animation:none!important}
