.section-skeleton{--sk-base:#e8e5df;--sk-shine:#f6f4ef;pointer-events:none}
.sk-block{display:block;position:relative;overflow:hidden;background:var(--sk-base,#e8e5df);border-radius:6px;height:14px;width:100%;margin-bottom:14px}
.sk-block:after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,var(--sk-shine,#f6f4ef) 50%,transparent 80%);transform:translateX(-100%);animation:sk-sweep 1.8s ease-in-out infinite}
.sk-short{width:25%}.sk-medium{width:65%}.sk-title{width:55%;height:26px;margin-bottom:24px}.sk-button{height:46px;width:65%;margin-top:24px;margin-bottom:0}.sk-input{height:48px;margin-top:24px}.sk-hero{height:240px;border-radius:14px;margin-bottom:24px}.sk-card{padding:26px;border:1px solid var(--line,#dedbd4);border-radius:14px;background:var(--card,#fff);margin-bottom:24px;min-width:0}.sk-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.sk-three{grid-template-columns:repeat(3,1fr)}.sk-avatar{width:84px;height:84px;border-radius:24px;margin:0;flex:none}.sk-profile{display:flex;align-items:center;gap:24px}.sk-profile>div{flex:1}.sk-row{display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line,#dedbd4);padding:22px 0}.sk-row .sk-block{margin:0}.sk-access{max-width:450px;margin:0 auto;text-align:center}.sk-access>.sk-block{margin-left:auto;margin-right:auto}.sk-square{aspect-ratio:1;width:min(100%,270px);height:auto;margin:18px auto}.sk-upload{height:140px;margin:24px 0}.sk-icon{width:24px;height:24px}.qr-skeleton{width:100%;--sk-base:#e8e5df;--sk-shine:#f6f4ef}.qr-skeleton .sk-square{margin:0;width:100%}
html[data-theme=dark] .section-skeleton,html[data-theme=dark] .qr-skeleton{--sk-base:#393833;--sk-shine:#494740}
@keyframes sk-sweep{to{transform:translateX(100%)}}
@media(max-width:700px){.sk-card{padding:22px 20px;margin-bottom:16px}.sk-columns{gap:12px}.sk-columns:not(.sk-three){grid-template-columns:1fr}.sk-three .sk-card{padding:14px 10px}.sk-three .sk-medium{width:100%}.sk-hero{height:180px}.sk-avatar{width:60px;height:60px;border-radius:18px}.sk-profile{gap:16px}.sk-access .sk-square{width:min(100%,240px)}.sk-button{width:100%}}
@media(prefers-reduced-motion:reduce){.sk-block:after{animation:none;display:none}}
