/* All motion is sampled by ClassroomMotion.seek(); no independent CSS clock. */
.cm-host{position:relative;isolation:isolate;overflow:hidden}
.cm-loading-panel{position:absolute;inset:0;z-index:9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;padding:24px;text-align:center;color:#345d4f;background:linear-gradient(145deg,#f7f7e9,#e8efd9);font-size:clamp(17px,2vw,27px);line-height:1.5}
.cm-loading-panel[hidden],.cm-load-retry[hidden]{display:none}
.cm-loading-mark{display:flex;gap:9px;align-items:center;height:32px}
.cm-loading-mark i{width:17px;height:17px;border-radius:50%;background:#e7bd58;animation:cm-loading-pulse 1.25s ease-in-out infinite}
.cm-loading-mark i:nth-child(2){background:#8fbdc5;animation-delay:.15s}
.cm-loading-mark i:nth-child(3){background:#eaa59b;animation-delay:.3s}
.cm-host[data-motion-state="error"] .cm-loading-mark i{animation:none}
.cm-load-retry{border:0;border-radius:15px;background:#73966e;color:#fffef0;padding:10px 24px;font:inherit;cursor:pointer;box-shadow:0 4px 0 #50714e}
.cm-load-retry:focus-visible{outline:3px solid #d39b45;outline-offset:5px}
@keyframes cm-loading-pulse{0%,70%,100%{transform:translateY(0);opacity:.55}35%{transform:translateY(-7px);opacity:1}}
.cm-viewport{position:absolute;inset:0;overflow:hidden;pointer-events:none;contain:layout paint;user-select:none}
.cm-world,.cm-world *{box-sizing:border-box}
.cm-world{position:absolute;width:1000px;height:600px;left:0;top:0;transform-origin:0 0;overflow:hidden}
.cm-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.7}
.cm-build .cm-backdrop{opacity:.36;filter:saturate(.82)}
.cm-ground{position:absolute;left:75px;top:430px;width:850px;height:135px;border-radius:50%;background:radial-gradient(ellipse,#d9dfbd 0%,#e6e8ce 66%,transparent 70%)}
.cm-move .cm-ground{left:160px;width:680px;top:447px;height:98px;background:radial-gradient(ellipse,#dce3c4 0%,#e6eacf 63%,transparent 69%)}
.cm-space{position:absolute;left:170px;top:384px;width:660px;height:148px;border:3px dashed #b7c39a;border-radius:50%;opacity:.58}
.cm-shadow{position:absolute;left:0;top:0;width:180px;height:32px;margin-left:-90px;margin-top:-12px;border-radius:50%;background:radial-gradient(ellipse,#65724745,transparent 71%);transform-origin:center;will-change:transform,opacity}
.cm-character{position:absolute;left:0;top:0;width:0;height:0;will-change:transform}
.cm-torso,.cm-joint{position:absolute;left:0;top:0;width:0;height:0;transform-origin:0 0;will-change:transform}
.cm-torso{z-index:4}
.cm-arm{z-index:3}
.cm-forearm{z-index:5}
.cm-leg{z-index:2}
.cm-art{display:block;position:absolute;background-repeat:no-repeat;pointer-events:none;will-change:opacity}
.cm-arm>.cm-art{border-radius:40%;mask-image:linear-gradient(#000 0%,#000 calc(100% - 15px),transparent 100%)}
.cm-forearm>.cm-art:not(.cm-elbow){mask-image:linear-gradient(transparent 0px,#000 8px,#000 100%)}
.cm-elbow{border-radius:50%}
.cm-block{position:absolute;left:0;top:0;width:54px;height:50px;margin-left:-27px;margin-top:-25px;border-radius:7px;background:linear-gradient(145deg,#fff8 0%,transparent 35%),var(--cm-block-color,#eab463);border:2px solid #6d604827;box-shadow:inset -6px -7px 0 #795b2520,inset 3px 3px 0 #fff6,0 4px 3px #665f2422;will-change:transform}
.cm-block::after{content:"";position:absolute;inset:9px 10px;border:1px solid #fff5;border-radius:3px}
.cm-block:nth-of-type(2n)::after{inset:14px 9px;border-width:1px 0 0;transform:rotate(-8deg)}
.cm-block-shadow{position:absolute;left:0;top:0;width:64px;height:14px;margin-left:-32px;margin-top:-7px;border-radius:50%;background:#63714326;will-change:transform,opacity}
.cm-contact{position:absolute;left:0;top:0;width:72px;height:14px;margin-left:-36px;margin-top:-7px;border:3px solid #caa35175;border-radius:50%;will-change:transform,opacity}
.cm-spark{position:absolute;left:0;top:0;width:18px;height:18px;border-radius:4px;background:#e4b85e;clip-path:polygon(50% 0,63% 37%,100% 50%,63% 63%,50% 100%,37% 63%,0 50%,37% 37%);will-change:transform,opacity}
.cm-ball{position:absolute;left:0;top:0;width:66px;height:66px;margin-left:-33px;margin-top:-33px;border-radius:50%;background:radial-gradient(circle at 31% 24%,#ffd69a 0%,#eaa56b 38%,#d98459 78%);border:3px solid #bd7448;box-shadow:inset -5px -7px 0 #b8733833;overflow:hidden;will-change:transform}
.cm-ball::before,.cm-ball::after{content:"";position:absolute;inset:-5px 17px;border:3px solid #b9764b;border-radius:50%}
.cm-ball::after{inset:26px -8px;border-radius:0;transform:rotate(-18deg)}
.cm-beam{position:absolute;left:410px;top:471px;width:360px;height:25px;border:2px solid #c29155;border-radius:8px;background:linear-gradient(#eacda0,#c9975e);box-shadow:0 12px 0 -4px #92734944}
.cm-beam::before,.cm-beam::after{content:"";position:absolute;top:18px;left:24px;width:24px;height:34px;background:#b78a59;border-radius:0 0 5px 5px}
.cm-beam::after{left:auto;right:24px}
.cm-platform{position:absolute;left:330px;top:438px;width:340px;height:130px;border-radius:0;background:none;box-shadow:none}
.cm-platform-shadow{position:absolute;left:-18px;top:67px;width:376px;height:63px;border-radius:50%;background:radial-gradient(ellipse,#75603c35,transparent 72%)}
.cm-platform-side{position:absolute;left:0;top:30px;width:340px;height:60px;border:2px solid #a37544;border-top:0;border-radius:0 0 50% 50% / 0 0 23px 23px;background:repeating-linear-gradient(90deg,transparent 0 39px,#8f68332b 39px 41px),linear-gradient(#c58f52,#b98247 76%,#a96f39);box-shadow:inset 0 -5px 0 #8c623b33}
.cm-platform-top{position:absolute;left:0;top:0;width:340px;height:66px;border:3px solid #ba8d50;border-radius:50%;background:repeating-linear-gradient(0deg,transparent 0 13px,#b88b4e42 13px 15px),linear-gradient(160deg,#f4dca9,#e9c58a 62%,#d8af72);box-shadow:inset 0 4px 0 #fff1c8,0 4px 0 #a87540}
.cm-platform-step-low,.cm-platform-step-high{position:absolute;border:2px solid #aa7948;border-radius:5px 5px 8px 8px;background:linear-gradient(#e9c58e 0 13px,#bb874d 14px,#aa7643 100%);box-shadow:inset 0 3px 0 #f8dfb4,0 4px 5px #755a3027}
.cm-platform-step-low{left:99px;top:102px;width:142px;height:25px}
.cm-platform-step-high{left:112px;top:82px;width:116px;height:29px}
.cm-platform-step-low::after,.cm-platform-step-high::after{content:"";position:absolute;left:6px;right:6px;top:8px;border-top:1px solid #bd945f65}
.cm-stool{position:absolute;left:350px;top:458px;width:300px;height:78px}
.cm-chair-back{position:absolute;left:3px;right:3px;top:-145px;height:157px;border:17px solid #c59b64;border-bottom:0;border-radius:29px 29px 0 0;background:linear-gradient(90deg,#dfbf87,#f0d6a5 50%,#dfbf87);box-shadow:inset 0 5px 0 #f8e1b5,0 0 0 2px #a77c48}
.cm-chair-back::after{content:"";position:absolute;left:14px;right:14px;top:30px;height:65px;border-top:3px solid #bc935c66;border-bottom:3px solid #bc935c66;border-radius:10px}
.cm-stool-seat{position:absolute;inset:0 0 auto;height:34px;border:2px solid #b1844c;border-radius:12px 12px 18px 18px;background:linear-gradient(#efd5a3 0 12px,#cda66c 13px,#bd945e);box-shadow:inset 0 4px 0 #f7e3ba,0 4px 0 #987243}
.cm-stool-leg{position:absolute;top:24px;left:8px;width:24px;height:54px;background:linear-gradient(90deg,#b38b57,#d3af79);border:1px solid #a8804c;border-radius:3px 3px 8px 8px;transform:rotate(4deg)}
.cm-stool-leg-right{left:auto;right:8px;transform:rotate(-4deg)}
@media(prefers-reduced-motion:reduce){.cm-world *{scroll-behavior:auto}.cm-loading-mark i{animation:none}}
