/* Quiet points of light; the student's voice appears only on activation. */
.reflection-layer{position:fixed;inset:0;z-index:30;pointer-events:none}
.reflection-dot{position:absolute;top:0;left:0;width:42px;height:42px;margin:-21px 0 0 -21px;border:0;border-radius:50%;padding:0;background:none;pointer-events:auto;cursor:pointer;will-change:transform;touch-action:manipulation}
.reflection-core{position:absolute;left:50%;top:50%;width:var(--light-size,8px);height:var(--light-size,8px);transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#f0fbff 0 12%,#9cddffb8 30%,#59baff38 58%,transparent 76%);box-shadow:0 0 8px 1px #63baff65;opacity:.85;transition:opacity .25s,box-shadow .25s;pointer-events:none}
.reflection-core::before{content:"";position:absolute;inset:-13px;border-radius:50%;background:radial-gradient(circle,#84d1ff50, #3e91ff18 40%,transparent 70%);animation:reflection-breathe var(--light-cycle,5s) ease-in-out var(--light-delay,0s) infinite;mix-blend-mode:screen}
.reflection-core::after{content:"";position:absolute;inset:-5px;background:linear-gradient(90deg,transparent 12%,#b7e8ff90 48%,#e9faffc0 50%,#b7e8ff90 52%,transparent 88%),linear-gradient(0deg,transparent 8%,#a9dbff70 48%,#d9f5ff90 50%,#a9dbff70 52%,transparent 92%);filter:blur(.45px);animation:reflection-glimmer calc(var(--light-cycle,5s) * 1.8) ease-in-out var(--light-delay,0s) infinite;transform:rotate(12deg);opacity:.15}
.reflection-dot::after{content:"";position:absolute;left:calc(50% + 9px);top:calc(50% - 8px);width:2px;height:2px;border-radius:50%;background:#8bcaff;box-shadow:-20px 13px 1px #68adffc0,3px 16px 1px #9ddfff70;pointer-events:none;animation:reflection-dust var(--light-cycle,5s) ease-in-out var(--light-delay,0s) infinite}
.reflection-dot:hover .reflection-core,.reflection-dot:focus-visible .reflection-core,.reflection-dot[aria-expanded="true"] .reflection-core{opacity:1;box-shadow:0 0 10px 2px #7bcaff90,0 0 22px 4px #489cff38}
.reflection-dot:hover .reflection-core::after,.reflection-dot:focus-visible .reflection-core::after,.reflection-dot[aria-expanded="true"] .reflection-core::after{animation:none;opacity:.6}
.reflection-dot:focus-visible{outline:1px solid #92d3f7;outline-offset:-5px}
.reflection-connector{position:fixed;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.reflection-connector path{fill:none;stroke:#78bee5;stroke-width:1;stroke-opacity:.48;vector-effect:non-scaling-stroke}
.reflection-panel{position:fixed;width:280px;max-width:calc(100vw - 40px);padding:22px 24px 18px;color:#e2eaf4;border:1px solid #6ca9d43b;border-radius:18px;background:linear-gradient(145deg,#0b1c2cdf,#07121fed);box-shadow:0 14px 45px #0003;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);pointer-events:auto;animation:reflection-in .28s ease-out both}
.reflection-eyebrow{display:block;font-size:10px;letter-spacing:1px;color:#7fadc9;margin-right:26px}
.reflection-panel h2{font:500 21px/1.4 Geist,"Microsoft YaHei","PingFang SC",sans-serif;letter-spacing:-.4px;margin:13px 0 11px;color:#edf5fa}
.reflection-panel p{font-size:13px;line-height:1.8;margin:0;color:#b6cad9}
.reflection-source{display:block;margin-top:16px;font-size:9px;line-height:1.5;color:#7793a8}
.reflection-close{position:absolute;top:11px;right:11px;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:#8babbd;font:300 22px/1 Geist,Arial,sans-serif;padding:0;cursor:pointer}
.reflection-close:hover{background:#86c9e512;color:#e4f3fa}.reflection-close:focus-visible{outline:2px solid #79bde5;outline-offset:2px}
body.has-reflection .custom-cursor{opacity:0!important}body.has-reflection,body.has-reflection a,body.has-reflection button{cursor:auto!important}
@keyframes reflection-in{from{opacity:0;filter:blur(3px)}to{opacity:1;filter:blur(0)}}
@keyframes reflection-breathe{0%,100%{opacity:.35;transform:scale(.75)}50%{opacity:.9;transform:scale(1.18)}}
@keyframes reflection-glimmer{0%,38%,70%,100%{opacity:.08;transform:rotate(12deg) scale(.65)}52%{opacity:.55;transform:rotate(12deg) scale(1)}}
@keyframes reflection-dust{0%,100%{opacity:.15;transform:translate(-1px,2px)}50%{opacity:.65;transform:translate(2px,-3px)}}
body.motion-paused .reflection-core::before,body.motion-paused .reflection-core::after,body.motion-paused .reflection-dot::after{animation-play-state:paused}
@media(max-width:700px){.reflection-panel{width:calc(100vw - 40px);padding:18px 21px 16px}.reflection-panel h2{font-size:19px;margin:10px 0 8px}.reflection-panel p{font-size:12px;line-height:1.75}.reflection-source{margin-top:12px;font-size:9px}.reflection-dot{width:44px;height:44px;margin:-22px 0 0 -22px}}
@media(prefers-reduced-motion:reduce){.reflection-panel{animation:none}.reflection-core{transition:none}.reflection-core::before,.reflection-core::after,.reflection-dot::after{animation:none}}
