.df-viewer{font-family:var(--font-sans,system-ui,-apple-system,sans-serif);color:var(--ink);background:var(--surface)}.df-viewer__stage{position:relative;display:block;background:var(--surface-sunken-warm);border-radius:0;overflow:hidden;border:0}.df-viewer__zoom{position:relative;width:100%;aspect-ratio:var(--viewer-aspect,1280/800);transform-origin:0 0;transition:transform .9s cubic-bezier(.4,0,.2,1);will-change:transform}.df-viewer__screenshot{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:fill;opacity:0;transition:opacity .22s ease}.df-viewer__screenshot--active{opacity:1}.df-viewer__hotspot{position:absolute;appearance:none;padding:0;background:transparent;border:0;border-radius:8px;cursor:pointer;animation:hglow 1.8s ease-in-out infinite;z-index:2}.df-viewer__hotspot:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@keyframes hglow{0%,to{box-shadow:0 0 0 0 rgba(79,70,229,.45),0 0 18px 0 rgba(79,70,229,.28)}50%{box-shadow:0 0 0 6px rgba(79,70,229,0),0 0 28px 4px rgba(79,70,229,.45)}}.df-viewer__cursor{position:absolute;pointer-events:none;z-index:3;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35));transition:left .9s cubic-bezier(.4,0,.2,1),top .9s cubic-bezier(.4,0,.2,1)}.df-viewer__cursor svg{display:block;transform:translate(-3px,-3px)}.df-viewer__tooltip{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);width:min(280px,calc(100% - 32px));background:var(--surface);color:var(--ink);border:1px solid var(--hairline);border-radius:var(--radius-lg);box-shadow:0 3px 12px rgba(11,11,15,.1);padding:12px 14px;font-size:13px;line-height:1.55;z-index:4}.df-viewer__done{padding:24px;text-align:center;background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:14px;color:var(--ink)}.df-viewer__badge{display:inline-block;margin-top:16px;padding:4px 8px;background:var(--paper);border:1px solid var(--hairline);border-radius:4px;font-size:11px;color:var(--text-subtle)}@media (prefers-reduced-motion:reduce){.df-viewer__cursor,.df-viewer__screenshot,.df-viewer__zoom{transition:none!important}.df-viewer__hotspot{animation:none!important}}